| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| HiPeople Registriert seit: Apr 2002
Beiträge: 135
| Kollision (circle-box) für spiel
hallo, hab ein kleines problem mit ner Kollision. und zwar plaziere ich per for schleife mehrer MC's (es sind rechtecke) auf die Bühne. Um jetzt eine Kollision mit einem Ball zu erkennen hab ich für jede kante des MC's eine linie plaziert. also eine LINKS, eine OBEN, eine RECHTS und eine UNTEN.(diese linie = MC , dicke = haarlinie) das macht 4 mal hitTEST * anzahl rechtecke. jede dieser 4 linien hat seine eigene hitTest abfrage um die richtung des ball zu ändern wenn dieser kollidiert. Um Flash jetzt nicht zu überlasten errechne ich die distanz zwischen ball und des rechtecks: dx = ball._x - this._x; dy = ball._y - this._y; dist = Math.sqrt((dx*dx)+(dy*dy)); if (dist<50) { if(this.hitTest(ball)) { richtung-=richtung; } } also immer nur in einem umkreis von 50 pixeln die hitTest abfrage aktivieren so weit so gut Ich habe jetzt wohl ein problem und zwar wenn der ball gleichzeitig mit 2 Linien ZB: mit der linie RECHTS und OBEN springt der ball jetzt nicht in die gewollte Richtung. wie kann ich feststellen mit welcher der 4 linien der ball zu erst kollidiert ? oder welchen linie gebe ich priorität ? wie kann ich dann die 3 andern hitTest umgehen ? hatte jemand ein änliches problem. das ganze könnt ihr euch hier online anschauen: http://60gp.ovh.net/~pixelpar/flash/pop.htm NB. gafik nicht beachten, ist = prototyp)danke:-) |
| | |
| | #2 (permalink) |
| Neuer User Registriert seit: Jul 2003 Ort: Hamburg
Beiträge: 46
|
Wenn deine Positionsmarken mittig liegen, was wohl so ist wegen der 50px Umkreis, dann hat wohl die Linie priorität, wo dist kleiner ist. Lösungsmöglichkeiten: - Ein Objekt erstellen, das die Linien Verwaltet. - Eine _global Variable für die dist Werte. |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |