Bewegungen begrenzen

ikon

Mit Glied
Hallo,
ich möchte einen Movieclip per Tastatur links und rechts steuern. Die Steuerung klappt einwandfrei, allerdings möchte ich natürlich nicht dass sich mein Movieclip von der Bühne bewegt. Mein Script sieht bisher so aus und ist an der Instanz auf der Bühne von meinem Movieclip angefügt:

onClipEvent(load){
Geschwindigkeit = 10;
}
onClipEvent(enterFrame){
if(Key.isDown(key.RIGHT)){
this._x+=Geschwindigkeit;
}
else if(Key.isDown(key.LEFT)){
this._x-=Geschwindigkeit;
}
}

Was muss ich nun noch hinzufügen dass mein Movieclip sich nicht ausserhalb der Bühne(Grösse 400x550) bewegen lässt?

mfg und thx

ikon
 
Hi,
habe nochmal etwas weiter gemacht und strickt nach meinem Lehrbuch gescriptet. Alles was ich nun noch möchte, dass sich der Movieclip, wenn in einem bestimmten Bereich auf der X-Achse zu einem anderen Bild im selbigen Movieclip springt. Mein Ansatz ist einfach und müsste auch funktionieren, aber Schleifen sind definitiv nicht meine Stärke. Komischerweise werden manche Bedingungen erfüllt, sodass schon zu irgendwelchen Bildern im MC gewechselt wird, aber nicht zu denen die ich möchte und vorallem auch nicht auf den gewünschten X-Positionen des MC.

mfg
ikon

//edit:
mein bisheriger code:

onClipEvent(load){
Geschwindigkeit = 10;
}
onClipEvent(enterFrame){
if(this._x<300){
this.gotoAndPlay(2)
}
else if(this._x<375){
this.gotoAndPlay(3)
}
else{
this.gotoAndPlay(1)
}
if(this._x>200){
this.gotoAndPlay(4)
}
else if(this._x>175){
this.gotoAndPlay(5)
}
else{
this.gotoAndPlay(1)
}
if((Key.isDown(key.RIGHT))&&(this._x<450)){
this._x+=Geschwindigkeit;
}
else if((Key.isDown(key.LEFT))&&(this._x>50)){
this._x-=Geschwindigkeit;
}
}
 
Zuletzt bearbeitet:
Hi,

versuchs mal mit gotoAndStop() anstelle von gotoAndPlay().

Da onEnterFrame mit jedem Bilddurchlauf aufgerufen wird, springst Du also ständig von neuem zu irgendwelchen Bildern. gotoAndPlay soll ja abspielen, daher wird beim nächsten Frame das nächste Bild im MC aufgerufen und Du zwingst den MC zusätzlich zu einem anderen Frame. Das führt zu ungewollten Ergebnissen, da quasi zwei Playanweisungen zeitgleich ausgeführt werden.

Gruß
.
 
Hi,
das würde nichts ändern, da ich in den Bildern die im Movieclip abgespielt werden sollen ein stop(); habe.

trotzdem Danke
 
Ja? Könnte dennoch etwas bringen.

Außerdem rufst Du mit Deiner Verzweigung auch mehrere Kommandos gleichzeitig auf: Was ist z.B., wenn sich der Clip auf Position 250 befindet? Er ist kleiner 300, also springst Du zu Frame 2. Zudem ist er > 200, und Du springst zu Frame 4...

Poste am besten mal Deine Datei, ich denke, man kann das eleganter mit einer switch-Anweisung und der Abfrage des aktuellen Frames (_currentframe) machen.

Gruß
.
 
Das mit den gotoAndStop hab ich versucht, bringt nix.
es dürften eigentlich keine Anweisungen gleichzeitig ausgeführt werden, da die else if Bedingung ja erst ausgeführt werden kann wenn die if Bedingung nicht bewahrheitet wird. Wenn die else if Abfrage nicht bewahrheitet wird, müsste das Programm weiter zur else Anweisung laufen.
quasi so: wenn MC's X-Position kleiner als 200,spiele MC Bild 4
aber wenn MC's X-Position kleiner als 175, spiele MC Bild 5
ansonsten, spiele MC Bild 1
und hier die Datei:

Danke für die Mühen

ikon

edit// Datei ist leider zu gross um Sie anzuhängen da ich noch JPEGs als Vorlagen in der Bibliothek habe.
 
Zuletzt bearbeitet:
Hi,

naja, bei gotoAndPlay(1) hört der erste IF-Block auf... die Abfragen danach werden m.E. immer ausgeführt (vielleicht bin ich auch etwas zu blind - Code-Tags würden das Lesen vereinfachen ;) ).

Wenn die Datei zu groß ist, nimm die JPGs einfach raus und wähle "Speichern und Optimieren" (vorher Kopie anlegen).

Gruß
.
 
OK,
hier die Datei, für die Grafiken sind nun im Movieclip einfache Pfeile weil ich die Zustände des Movieclips für die Seitenbewegung noch nachzeichnen muss.

thx und gruß
ikon
 

Anhänge

  • CQ_game_only.zip
    133,4 KB · Aufrufe: 17
Zurück