Object-Variablen vergleichen?
Übersicht

![]() |
SupeRalFBetreff: Object-Variablen vergleichen? |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich habe ein paar grafiken, die in einem Collisionslayer sitzen. jetzt möchte ich allerdings zwei kollisionslayer auf kollision überprüfen.
In der Praxis: der eine Kollisionslayer beinhaltet Schüsse, der andere Gegner. Ich möchte erst dann jeden Gegner und jeden schuss pixelgenau überprüfen, wenn es überhaupt irgendwo eine kollision gibt, also an irgendeiner Stelle sich die Grafiken von layer1 und layer2 berühren. aber wie geht das? mfg SupeRalF [edit]: sry, falsches forum! bitte in blitz-max-forum verschieben, falls möglich! |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Eine Vorabprüfung kannst du machen mit:
ql:If ql:Then oder ql:RectsOverlap oder ql:ImageRectOverlap eine Endprüfung geht dann mit ql:ImageRectCollide Da grad das letzte recht langsam ist, sollte man immer zunächst eine Vorabprüfung machen. Auf einer Dim-Map kann man sogar auf eine Vorabprüfung komplett verzichten, da man die Koordinaten der Kacheln bereits in ein Raster abgelegt hat. Da überprüft man mit ImageRectOverlap nur noch die vier überhaupt mögliche umgehende Tiles nach Kollision. |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
![]() |
SupeRalF |
![]() Antworten mit Zitat ![]() |
---|---|---|
es ist also nur mit den von dir genannten befehlen möglich?
weil eigentlich wollte ich ja durch nur ein paar zeilen code zwei komplette layer vergleichen. ich kann es natürlich auch so machen, aber das kollidieren von zwei LAYERN wäre natürlich schöner... |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Es gibt keine Layer in Blitz3D / BlitzPlus.
Es gibt einzig und alleine direkt vergleiche zweier Objekte. Du kannst daraus natürlich mit ein wenig Geschickt durchaus Layer vs Layer Kollisionsvergleiche machen, obwohl das sehr ungewöhnlich ist und nicht empfehlenswert. Normalerweise macht man Object vs Layer vergleiche. Alternativ kannst du die Layer auch dadurch hinbekommen das du einfach Gruppen von Types machst und dann gegen die jeweiligen Gruppen testest sprich gegen jedes Element darin (das ist vermutlich sogar schneller als gegen ein Bild wo alle gegner drin sind, weil du mit RectsOverlap schon direkt sagen kannst das es keine Kollision gibt anstatt effektiv die Pixel auffahren zu müssen). Wenn man soviele objekte hat das bald alles miteinander kollidieren können muss ist Pixelkollision nicht mehr zu empfehlen. Dann würde ich empfehlen, dass du dich mit SceneGraphs und SAT + Swept Polygon Collision auseinander setzt und dir eigene Polygonkollisionsroutinen implementierst ... die sind einiges effizienter wenn du "grosse Mengen" an Objekten kollidieren lassen willst. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
~VERSCHOBEN~ Dieser Thread passte nicht in das Forum, in dem er ursprünglich gepostet wurde. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
SupeRalF |
![]() Antworten mit Zitat ![]() |
---|---|---|
Vielen Dank für den Tip mit SceneGraphs. leider habe ich keine ahnung, was das ist, wie mans benutzt etc. bei google habe ich nichts hilfreiches gefunden. gibt es irgendein (möglichst deutschsprachiges) tutorial? | ||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group