Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Percorsi in diagonale

  1. #1

    Percorsi in diagonale

    Salve a tutti.
    Sto prvando a far muovere un oggetto senza accelerazioni decelerazioni o altri effetti. Deve solo raggiungere un punto (mc palla) con velocità lineare e costante.

    Ho ingenualmente pensato di risolvere semplicemente così:

    if(this._y>_root.palla._y){this._y-=1;}
    if(this._y<_root.palla._y){this._y+=1;}
    if(this._x>_root.palla._x){this._x-=1;}
    if(this._x<_root.palla._x){this._x+=1;}

    Ma in questo modo se l'oggetto per ragigungere la meta deve percorrere un percorso diagonale non passa per la strada più corta ma, visto che aggiunge lo stesso valore su x e su y (1) raggiunge prima la coodinata a lla quale si trova più vicino e poi prosegue lungo una linea parallela a un ases (x o y) e la segue fino ad arrivare al punto. In pratica va prima a 45° e poi prosegue verso il punto. Il che è ovvio visti i comandi che gli ho dato. Ma esiste un modo per ottenere ciò che voglio?

    Vi allego un esempio.
    Immagini allegate Immagini allegate

  2. #2
    prova un po così

    codice:
    InitX=palla._x
    InitY=palla._y
    
    DestX=400
    DestY=390
    
    function Sposta(){
    	palla.onEnterFrame=function(){
    		X=destX-this._x
    		Y=destY-this._y
    		this._x+=X/7
    		this._y+=Y/7
    		trace(this._x + "/" + this._y)
                    //dalla trace controlla i valori 
                    //ed inserisci un controllo per il delete this.onEnterFrame
    		
    	}
    }
    
    Sposta()

  3. #3
    Uhm, avevo provato una cosa simile ma il problema è che mi serve un moviemnto senza a accelerazioni.

  4. #4
    Ehh ..Ehh

    codice:
    InitX=palla._x
    InitY=palla._y
    
    DestX=500
    DestY=200
    
    function Sposta(){
    	palla.onEnterFrame=function(){
    		X=_level0.DestX-this._x
    		Y=_level0.DestY-this._y
    		this._x+=X/X 	
              	this._y+=Y/X 		
                    trace(this._x + "/" + this._y)
    		
    	}
    }
    
    Sposta()

  5. #5
    Ohhh santo cielo... ma davvero? Sono proprio un idiota! Grazie di avermelo fatto scoprire...

    Vado a piangere a in qualche angoletto.
    FORSE ci risentiremo.

    Edwardiota

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.