Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 31

Discussione: movimento naturale

  1. #1

    movimento naturale

    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?

  2. #2
    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

  3. #3
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    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...

  4. #4
    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

  5. #5
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    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
    non mi sembra così complicato... devi "solo" cambiare la _x con la _y in maniera "congrua"..
    sto andando via.. credo che ce la puoi fare tranquillamente.. .se non hai già fatto nel frattempo...

    per l'avatar.. non poteva essere altrimenti...

  6. #6
    purtroppo non è così semplice

    se ti va di provarci fammi sapere


    ciao ciao

  7. #7
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    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

  8. #8
    bravo, io avevo lasciato perdere (per il momento), ora testo e studio il tuo codice.

    ciao ciao

  9. #9
    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 la tipo biliardo

  10. #10
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    quando hai qualcosa di funzionante, posta....

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.