Kollisionsüberprüfung mit MovieclipInstanzen

Ävi

Grünschnabel
Hi,

ich möchte für ein kleines Spiel eine Kollisionsüberprüfung mit hitTest für zwei Movieclips (Spielfigur und Landschaftsobjekte) durchführen (Damit man zum Beispiel nicht durch Bäume laufen kann). In der Flashhilfe steht, dass ich das Formkennzeichen (Bool'scher Wert, der angibt ob die Form des Movieclips oder dessen Begrenzungsbox überprüft wird) nur mit angeben kann, wenn ich einen x- und y-Wert angebe, aber nicht in Verbindung mit dem Instanznamen. Was muss ich also tun um eine Kollisionskontrolle durchzuführen, wenn ich bei beiden Movieclips die Form selbst überprüfen will und nicht nur die Begrenzungsbox.

Ich hoffe, ich konnte das einigermaßen anschaulich schildern und Danke schonmal im Vorraus!
 
Hi,

die einzige Möglichkeit, die ich da sehe, wäre die herausragenden Eckpunkte des einen Clips als Koordinten auf Kollision des anderen Clips einzeln zu testen.

Gruß
.
 
Hi,

Falls du meinst, dass ich die Koordinaten des Movieclips mit den Umgebungsobjekten als Parameter für die hitTest-Funktion angeben soll, das hab ich schon versucht, aber ich kann nur nicht durch den definierten Punkt laufen :(

Gruß
 
Zuletzt bearbeitet:
Ich meinte im Prinzip so etwas wie im Anhang. Du testest herausragende Punkte (die roten Markierungen) Deines Sprites auf Kollision. Je mehr Punkte Du testest, desto genauer wird die Objektkollision, desto rechenintensiver und damit langsamer allerdings der Vorgang.

Gruß
.
 

Anhänge

  • sprite.gif
    sprite.gif
    2,9 KB · Aufrufe: 44
Hi,

ich wollte eigentlich den gesamten MC-Inhalt prüfen und nicht nur einzelne Prüfpunkte (weil es bei der Variante zwar funktionieren kann, aber nicht muss. Angenommen ein Nadelbaum hätte eine dünne Spitze, dann könnte es so passieren, dass diese einfach zwischen 2 Prüfpunkten des Charakter-MCs durchpassen und ich deshalb an der Stelle laufen kann).
Was ich wissen wollte ist ob es mittels ActionScript eine Methode gibt das so durchzuführen, wie ich es mir wünsche.
Was mich irritiert hat ist, dass man das Formkennzeichen nur angeben kann, wenn man einen Punkt angibt und nicht bei Angabe einer MC-Instanz, weil Punkte ja eigentlich keine "Instanz" sind, noch eine "Begrenzungsbox" besitzen, noch eine "Form" hat (siehe Flash MX-Hilfe unter Movieclip.hitTest() unter Parameter Formkennzeichen).
Ich hoffe, du verstehst mein Problem.

Gruß
 
Zuletzt bearbeitet:
Ich verstehe das Problem, kann Dir aber nicht weiterhelfen. Weil eben eine Objektkollision für viele Punkte (z.B. der ganze Umriss eines MCs) sehr rechenintensiv ist, hat Macromedia darauf verzichtet.

Du musst Dich entweder mit etwas ungenauerem begnügen, oder eben selbst Hand anlegen und eine eigene Routine schreiben. Wahrscheinlich findest Du per Google diverse Seiten zum Thema Spieleprogrammierung, wo der eine oder andere Ansatz beschrieben wird. Wie es dann mit der Performance aussieht, kann ich nicht sagen.

Gruß

P.S.: Mit Keypunkten würde ich nicht unbedingt hitTest verwenden, sondern den Abstand zu den Keypunkten des anderen Clips berechnen. Dann hast Du m.E. größere Chancen, die Tannenspitze mit aufzufangen. ;)
.
 
Zuletzt bearbeitet:
Danke für die Tipps,
ich werd mal versuchen eine Funktion zu schreiben, die einigermaßen genau arbeitet.

Gruß
 
Zurück