Auto + Wand

Newb

Erfahrenes Mitglied
Hi,

wenn ich ein Objekt habe was ich mit den Pfeiltasten steuern kann, wie kann ich in Hindernisse oder Wände einfügen, durch die diese Objekt nicht durch kann?

Mit .hitTest kann ich ja abfragen ob das steuerbare Objekt gegen das andere gestoßen ist --> folgen kann dann eine Explosion oder ähnliches ich will aber das man das Objekt dann weiterhin steuern kann, es soll nur nicht durch diese "Hindernisse" hindurch.

Wie stell ich sowas an?



MfG
General ']['.G.
 
Du prüft per hitTest nach der Kollision, guckst dann per Koordinatenvergleich auf welcher Seite der Wand dein Auto ist und sperrst dann solange diese Bewegungsrichtung, bis die Kollision nicht mehr da ist bzw. bis die Richtung der Kollision sich geändert hat.

Frohe Weihnachten
.
 
Hi,
so zwar etwas später XD aber warum´n neues Thema eröffnen.

Ich habe diesen "Kolisions"-Teil fast fertig. Das Auto läuft sogar ohne Benzin ^^
Aber wie programmiere ich mehrere Wände/Hindernisse ein.

Muss ich dann ellenlange Code schreiben wie:
Code:
if (this.hitTest(wand1)) = if (this.hitTest(wand2)) = if (this.hitTest(wand2)) = if (this.hitTest(wand3))...

Das muss doch kürzer gehen.
Wüsste nur nich wie !

Die Datei hab ich mal in den Anhang "geparkt" <-- weil is haltn Auto ^^



MfG:
General ']['.G.
 

Anhänge

  • auto.fla
    45 KB · Aufrufe: 54
... ohne in die Datei geschaut zu haben:

Pack die Wände doch in ein Array, und gehe dieses in einer Schleife durch:
Code:
var waende = new Array(wand1, wand2, wand3, ... wand100);

...

for (var i in waende) {
  if (auto.hitTest(waende[i])) doKollision(waende[i]);
}

Gruß
.
 
Hi,

und fett Danke ^^
genau das hab ich gesucht - Alo nun muss ich alle Hindernisse einfach nur ins Array eintragen.

Schönes ding


MfG
General ']['.G.
 
Hmm

hab das ebend mal eingebaut.
Und will ja etwas ausführen wenn das zutrifft (Wenn Kolision, dann...).
Dann soll speed = 0 gesetzt werden.

Wie bastel ich das da in die Antwort von Tobias?


MfG
General ']['.G.
 
Zuletzt bearbeitet:
Ich schrieb ja:
Code:
for (var i in waende) {
  if (auto.hitTest(waende[i])) doKollision(waende[i]);
}

Du kannst dafür die Funktion "doKollision" anlegen:
Code:
function doKollision(wand) {
  speed = 0;
}
In meinem Beispiel wird der Funktion zusätzlich noch die betroffene Wand übergeben, falls Du diese später benötigen solltest.

Gruß
.
 

Neue Beiträge

Zurück