Hilfe bei Pixelgenauer Kollision
-
Von BoundingBoxes war ja die ganze Zeit die Rede.
Meinst du vielleicht sowas:http://bloody-blades.de/shit.jpg *g*
?
-
Auf jeden Fall ein witziges Bild ^^
Ich seh nur keine Mauer :p
-
FoxDie schrieb:
Auf jeden Fall ein witziges Bild ^^
Ich seh nur keine Mauer :pDas Graue soll die Mauer sein; ich habs nur leider ungünstig gemalt und den Text auf die Mauer geschrieben.
Eine Kollision findet statt, wenn die Boundingbox die Mauer schneidet.::edit:: is doch sogar en gelbes Kreuz an der Kollisionsstelle

-
Hi Danke,
wie im ersten Beitrag beschrieben habe ich für eien ganz normale Bounding Box Kollision, also ein Rechteck schon Code...
Wenn ich aber nun für jedes Objekt so eine Angepasste Box -wie oben im Bild- machen würde wäre das wohl extrem viel Arbeit!
Gibt es code der sich sowas ähnliches selber berechnet?
Wobei dann ja eigentlich immernoch die Kollision VOR dem Raumschiff statt findet, aber wäre sicher als Schutzschild gut *g*Ich weiss nun nicht genau was ich nehmen soll da die Pixelgenaue zu langsam ist und die andere (Raumschiff Beispiel-Bild) anscheinend zuviel Aufwand erzeugt (da ich mit RECTs sowieso schon nicht so gut klar komme *g*)
Was sollte ich an euer Stelle wohl nun tuen?
Gruß
PS: Heisst es tun oder tuen?!
Danke
-
Nimm doch eine Box als vorprüfung ... nicht jeder Schuß trifft ... wenn die Box eine Kolision anzeigt, dann überprüfst du ob ein Kolision bzw. Wo genau eine statfinden tut. Um die Berechnungszeit ein wenig zu verringern machst du eine Vorprüfung
z.B.
Kugel bewegt sich auf Y200 entlang der X Achse ... die BB meldet eine wahrscheinliche Kolision ... Überprüfe welchen Teil des Schiffes die Kugel treffen könnte (Rechts-Oben, Links-Oben, Rechts-Mitte usw.) ... jetzt prüfst du diesen Abschnitt der Matrix auf Kolision
-
Du müsstest dir ein kleines Programm schreiben, wo du dein Bild laden und dann mit der Maus die Boundind-*Striche* ziehen kannst. Die Koordinaten der Eckpunkte werden dann in eine extra Datei geschrieben.
E.g.
Du hast die Dateien banana.jpg und banana.bbd (bounding box data :P)Das Bild wird an Position x|y gemalt.
In banana.bbd steht jetzt, dass die Boundingbox die Eckpunkte an 35|4, 48|10 und 20|8 hat.
Dann sind deine Eckpunkte der Boundingbox ingame dann eben x+35|y+4 (z.B.)
-
Dummie schrieb:
PS: Heisst es tun oder tuen?!
Danke
Hallo Dummie,

es heißt tun.
-
xindon schrieb:
Du müsstest dir ein kleines Programm schreiben, wo du dein Bild laden und dann mit der Maus die Boundind-*Striche* ziehen kannst. Die Koordinaten der Eckpunkte werden dann in eine extra Datei geschrieben.
E.g.
Du hast die Dateien banana.jpg und banana.bbd (bounding box data :P)Das Bild wird an Position x|y gemalt.
In banana.bbd steht jetzt, dass die Boundingbox die Eckpunkte an 35|4, 48|10 und 20|8 hat.
Dann sind deine Eckpunkte der Boundingbox ingame dann eben x+35|y+4 (z.B.)
Du meinst collision shapes ?

-
Netzwerk-Latenz schrieb:
Du meinst collision shapes ?

GANZ GENAU!

Ich wusste nicht wie es heißt, dankeschön

Also Threadersteller, mein Vorschlag sind wie schon gesagt Bounding Shapes / Collision Shapes.
-
In ClanLib gibts eine Klasse, die Collision Shapes direkt aus Pixmaps erstellen kann und auch für Kollisionsberechnungen nutzen.