salve a tutti,
sto cercando di far muovere un clip con le frecce della tastiera e vorrei che premendo la direzione voluta il clip accelerasse fino ad una velocità costante per poi decelerare al rilascio del tasto.
qualcuno può darmi la mano?
salve a tutti,
sto cercando di far muovere un clip con le frecce della tastiera e vorrei che premendo la direzione voluta il clip accelerasse fino ad una velocità costante per poi decelerare al rilascio del tasto.
qualcuno può darmi la mano?
io ho fatto così:
copiate questo script su di un clip nello stage
//script
onClipEvent (load) {
acc=0.1;
}
onClipEvent (enterFrame) {
if (Key.isDown(Key.UP)) {
velocita += acc;
this._y -= velocita;
if(this.velocita >= 10){this.velocita =10};
}
else
{
velocita -= acc;
this._y -= velocita;
if(velocita <= 0.01){this.velocita =0};
}
}
//fine script
funzia però quando il tasto freccia su non è premuto va indietro pian piano e non so come ovviare![]()
dopo 2 ore che ci provo, ho trovato la soluzione..
premetto che senza di te non sarei mai riuscito a farlo...![]()
![]()
![]()
vai con questo codice...
in pratica valorizzi acc solo quando sei nell'ENTERFRAME...
codice://script onClipEvent (load) { var acc = 0; } onClipEvent (enterFrame) { if (Key.isDown(Key.UP)) { acc = 0.1 velocita += acc; this._y -= velocita; if(this.velocita >= 10){this.velocita =10}; } else { velocita -= acc; this._y -= velocita; } if (this.velocita <= 0.01){ this.velocita = 0; acc=0}; trace (velocita); } //fine script
ovviamente togli pure i trace...![]()
![]()
ottimo funzia, ora bisogna far si che si comporti così in tutte le direzioni (su, giu, destra, sinistra)
p.s. complimenti per il tuo avatar![]()
non mi sembra così complicato... devi "solo" cambiare la _x con la _y in maniera "congrua"..Originariamente inviato da eloderma
ottimo funzia, ora bisogna far si che si comporti così in tutte le direzioni (su, giu, destra, sinistra)
p.s. complimenti per il tuo avatar![]()
sto andando via.. credo che ce la puoi fare tranquillamente.. .se non hai già fatto nel frattempo...
per l'avatar.. non poteva essere altrimenti...![]()
purtroppo non è così semplice![]()
se ti va di provarci fammi sapere
ciao ciao
non so te, ma dopo un po' ci sono riuscito...
ti posto il codice completo...
codice://script onClipEvent (load) { var acc = 0; var acc2 = 0; var acc3 = 0; var acc4 = 0; } onClipEvent (enterFrame) { //andare su if (Key.isDown(Key.UP)) { acc = 0.2 velocita += acc; this._y -= velocita; if(this.velocita >= 20){this.velocita = 20}; } else { velocita -= (acc/2); this._y -= velocita; } if (this.velocita <= 0.01){ this.velocita = 0; acc=0}; //andare a sinistra if (Key.isDown(Key.LEFT)) { acc2 = 0.2 velocita2 += acc2; this._x -= velocita2; if(this.velocita2 >= 20){this.velocita2 = 20}; } else { velocita2 -= (acc2/2); this._x -= velocita2; } if (this.velocita2 <= 0.01){ this.velocita2 = 0; acc2=0}; //andare a destra if (Key.isDown(Key.RIGHT)) { acc3 = 0.2 velocita3 += acc3; this._x += velocita3; if(this.velocita3 >= 20){this.velocita3 = 20}; } else { velocita3 -= (acc3/2); this._x += velocita3; } if (this.velocita3 <= 0.01){ this.velocita3 = 0; acc3=0}; //andare giù if (Key.isDown(Key.DOWN)) { acc4 = 0.2 velocita4 += acc4; this._y += velocita4; if(this.velocita4 >= 20){this.velocita4 = 20}; } else { velocita4 -= (acc4/2); this._y += velocita4; } if (this.velocita4 <= 0.01){ this.velocita4 = 0; acc4=0}; trace (velocita); trace (velocita2); trace (velocita3); } //fine script
bravo, io avevo lasciato perdere (per il momento), ora testo e studio il tuo codice.
ciao ciao![]()
grande funziona benissimo !
ora ho applicato il tuo script ad una 'palla' che se spinta da un alto movieclip se ne va in giro bellamente di qua e di latipo biliardo
quando hai qualcosa di funzionante, posta....![]()