Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Di gravitŕ ed altre questioni

    Buondě ragazzi, ultimo mio thread dell'anno

    Sto facendo un piccolo giochino, mi servirebbe una mano.

    Io ho un tizio che si muove con la pressione delle frecce.

    Quando premo freccia su, mi servirebbe che saltasse e tornasse in terra in modo realistico, grazie alla gravitŕ.

    Per ora ho questo codice per il salto:
    codice:
    if(Key.isDown(Key.UP)){
            service.onEnterFrame = function(){
            burz._y -= speed_salto;
    	pos_fin=burz._y-pos_iniz;
    			
            if (pos_fin<=-50){
    		delete service.onEnterFrame;
                    //codice ritorno a terra
    	}
    }
    Ovviamente dove c'č "//codice ritorno a terra", dovrei applicare la gravitŕ.

    Ho trovato questo codice facilino, ma non riesco ad applicarglielo.
    codice:
    onClipEvent (load) {
    gravita = 2 ;
    massimo = 500 ; //dimensione y massima dello stage
    rimbalzo = 0.92 ;  //incremento di velocita dovuto al rimbalzo (il valore <=1 per evitare che la palla superi il punto di partenza di essa)
    
    //Velocita della palla iniziale
    speedx = 0 ;
    speedy = 0 ;
    }
    
    onClipEvent (enterFrame) {
    speedy = speedy + gravita ; //Incremento della velocita
    
    this._x += speedx/5 ;  //Muove la palla
    this._y += speedy/5 ;  //Muove la palla
    
    if (this._y > massimo) {  //tocca la fine dello stage
    this._y = massimo ;
    speedy *= -rimbalzo ;
    }
    }
    Suggerimenti?

  2. #2
    fai una prova su un fla vuoto

    disegna una palla istanziata palla, posizionala sul fondo
    e sulla frame ...

    codice:
    palla.gravita = 2 ;
    palla.massimo = 500 ; //dimensione y massima dello stage
    palla.rimbalzo = 0.3 ;  //incremento di velocita dovuto al rimbalzo (il valore <=1 per evitare che la palla superi il punto di partenza di essa)
    
    //Velocita della palla iniziale
    palla.speedx = 0 ;
    palla.speedy = 0 ;
    
    palla.speed_salto= 20
    this.onEnterFrame=function(){
    if(Key.isDown(Key.UP)){
    	    salta()
            
    }
    }
    
    function salta(){
    palla.onEnterFrame = function(){
        this._y -= this.speed_salto;
        pos_fin=this._y-this.massimo;
    			
        if (pos_fin<=-20){
    		delete this.onEnterFrame;
                    _level0.torna()
    	}
    }
    }
    
    function torna(){
       palla.onEnterFrame=function(){	
    		this.speedy = this.speedy + this.gravita ; //Incremento della velocita
    		this._x += this.speedx/5 ;  //Muove la palla
    		this._y += this.speedy/5 ;  //Muove la palla
    		if (this._y >= this.massimo) {  //tocca la fine dello stage
    			this._y = this.massimo ;
    			this.speedy *= -this.rimbalzo ;
    		}
       }
    }

  3. #3
    Ok, appena riesco provo, intanto grazie, remposo!

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.