Hi, ich hab ein Problem in Action Script 2.0 mit if-abfragen.
Ich möchte folgendes realisieren.:
Auf dem Feld sind zwei bewegbare Figuren und eine Tonne. Für meine Tests steht Figur (Holger) links und Figur (Mario) rechts. In der mitte der beiden ist die Tonne.
Beide Figuren sollen in der Lage sein die Tonne anzustoßen bzw in Bewegung zu bringen. (bis hierhin funktioniert auch alles)
Jetzt kommt der Punkt, wo ich leider verzweifel, sobald die Tonne angestoßen wurde und in Bewegung ist, soll die Tonne nicht mehr erneut angestoßen werden können (bis sie halt anhält irgendwann), im Gegenteil, die Tonne soll die Figur wegstoßen können, nur leider tut der code nicht das was ich mir vorgestellt hab.
Mein Ansatz war es erstmal die Bewegung der Figuren zu speichern, sprich wenn die Figur sich nicht bewegt =0 und wenn sie sich bewegt =6. Gleiches gilt für die Tonne, nur dass ihre Bewegung höher ist durch den Stoß.
Im Anschluss soll eine If Abfrage mittels der Bewegung entscheiden, ob die Tonne nun anstoßbar ist oder eben selbst stößt.
hier ist meine Problemstelle
Bei den Tests laufe ich mit Figur Holger gegen die Tonne und diese fliegt auf Figur Mario
allerdings kommt der Code nie in den bereich, wo steht "Mario wird geschmissen"
Hier einmal die gekürzte Version vom trace:
Mario hat Speed 0 und die Tonne 30, sprich Marios Bewegung ist höher als die der Tonne, trotzdem wird dieser Block nie ausgeführt
Ich würde mich über eure Antworten, Hinweise und Vorschläge freuen
Anhang:
hier nochmal der gesamte Code (ich bin ein Laie, daher verzeiht mir den Codesalat)
Ich möchte folgendes realisieren.:
Auf dem Feld sind zwei bewegbare Figuren und eine Tonne. Für meine Tests steht Figur (Holger) links und Figur (Mario) rechts. In der mitte der beiden ist die Tonne.
Beide Figuren sollen in der Lage sein die Tonne anzustoßen bzw in Bewegung zu bringen. (bis hierhin funktioniert auch alles)
Jetzt kommt der Punkt, wo ich leider verzweifel, sobald die Tonne angestoßen wurde und in Bewegung ist, soll die Tonne nicht mehr erneut angestoßen werden können (bis sie halt anhält irgendwann), im Gegenteil, die Tonne soll die Figur wegstoßen können, nur leider tut der code nicht das was ich mir vorgestellt hab.
Mein Ansatz war es erstmal die Bewegung der Figuren zu speichern, sprich wenn die Figur sich nicht bewegt =0 und wenn sie sich bewegt =6. Gleiches gilt für die Tonne, nur dass ihre Bewegung höher ist durch den Stoß.
Im Anschluss soll eine If Abfrage mittels der Bewegung entscheiden, ob die Tonne nun anstoßbar ist oder eben selbst stößt.
hier ist meine Problemstelle
Code:
if(this.hitTest(_root.holger)){ trace("Holger berührt die Tonne"); if(_this.s>_root.holger.bewegung) {_root.holger._x=30; trace("Holger wird geschmissen"); } else {this.s=30; trace("Holger schmeißt Tonne");} trace("Holger berührt die Tonne nicht mehr"); } trace("speed mario "+ _root.mario.bewegung ); trace("speed tonne "+ this.s ); if(this.hitTest(_root.mario)){ trace("Mario berührt die Tonne"); trace("speed mario "+ _root.mario.bewegung ); trace("speed tonne "+ this.s ); if(_this.s<_root.mario.bewegung) {_root.mario._x+=30; trace("Mario wird geschmissen");} else {this.s=30; trace("Mario schmeißt Tonne");} trace("Mario berührt die Tonne nicht mehr"); } _x += s trace("speed holger "+ _root.holger.bewegung ); trace("speed mario "+ _root.mario.bewegung );
allerdings kommt der Code nie in den bereich, wo steht "Mario wird geschmissen"
Hier einmal die gekürzte Version vom trace:
Code:
speed mario 0 speed tonne 0 speed holger 6 speed mario 0 start speed mario 0 speed tonne 0 speed holger 6 speed mario 0 start Holger berührt die Tonne Holger schmeißt Tonne Holger berührt die Tonne nicht mehr speed mario 0 speed tonne 30 speed holger 6 speed mario 0 start speed mario 0 speed tonne 30 speed holger 6 speed mario 0 start speed mario 0 start speed mario 0 speed tonne 30 speed holger 0 speed mario 0 start speed mario 0 speed tonne 30 speed holger 0 speed mario 0 start speed mario 0 speed tonne 30 Mario berührt die Tonne speed mario 0 speed tonne 30 Mario schmeißt Tonne Mario berührt die Tonne nicht mehr speed holger 0 speed mario 0
Code:
if(_this.s<_root.mario.bewegung) {_root.mario._x+=30; trace("Mario wird geschmissen");}
Anhang:
hier nochmal der gesamte Code (ich bin ein Laie, daher verzeiht mir den Codesalat)
Spoiler:
Comment