Kollision: rechtecke und kugeln auf pixel?
-
Hallo,
ich brauche fuer mein projekt eine kollisionserkennung, und zwar frame-unabhaengig (damit objektye bei schnellen bewegungen nicht durch andere hindurchfliegen, und weil ich die abprallvektoren brauche)
daa problem ist, dass die objekte mit denen die rechtecke und kugeln kollidieren sollen, nicht auch aus rechtecken oder kugeln bestehen, sondern aus einzelnen pixeln. (aehnlich wie in worms, falls es jemand kennt)
sprich sie haben keine definierbare form, und man kann nicht einfach den schnittpunkt des bewegungsvektors mit ihrer huelle suchen.muss ich in jedem frame den bewegungspfad meines objektes pixel fuer pixel auf eine kollision ueberpruefen? und wie bekomme ich von einer undefinierten oberflaeche den abprallvektor?
danke
-
Also erstmal wärs natürlich effizient wenn du zuerst die kollision mit einer Bounding Box (z.B AABB oder OABB) prüfst. Dann würde ich die konvexe Hülle bestehend aus Liniensegmenten deiner "Pixelobjekte" bestimmen und die Kollision einfach damit überprüfen
-
megaweber schrieb:
Also erstmal wärs natürlich effizient wenn du zuerst die kollision mit einer Bounding Box (z.B AABB oder OABB) prüfst. Dann würde ich die konvexe Hülle bestehend aus Liniensegmenten deiner "Pixelobjekte" bestimmen und die Kollision einfach damit überprüfen
das ist leider nicht mögliche, meine objekte befinden sich "innerhalb" einer bitmap, da kann ich keine konkave hülle um irgendwas bilden!
die bitmap ist praktisch die "map" auf der sich die objekte bewegen, wobei alle pixel die nicht schwarz sind, kollisionsobjekte sind.
-
wir hatten hier schon viele collision gespraeche im forum, wenn du kurz die suche bemuehst, findest du wahrscheinlich die antworten.
-
rapso schrieb:
wir hatten hier schon viele collision gespraeche im forum, wenn du kurz die suche bemuehst, findest du wahrscheinlich die antworten.
ich hab schon gesucht, ich hab aber nichts gefunden, was sich auf eine worms-artige kollision bezieht

-
du hast ein grundsaetzliches problem, kein spezielles nur auf pixel bezogenes. deswegen helfen dir selbst die ansaetze fuer 3d weiter.
-
Such mal nach bit-mask collison detection bei google oder hier im Forum, das sollte dir helfen.
Gruss, gast