Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 24-06-2004, 13:23   #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:-)
superheftig ist offline   Mit Zitat antworten
Alt 25-06-2004, 08:00   #2 (permalink)
Neuer User
 
Benutzerbild von Cerberus
 
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.
Cerberus ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 18:41 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele