JavascriptProva

venerdì 22 febbraio 2013

Una nuova idea per le collisioni: pensare la posizione dell'oggetto prima di attuarla...

Dunque... proviamo con un altro approccio.
Il codice può prima pensare alla posizione dell'oggetto e poi attuarla, in modo da eliminare posizioni reali e posizioni virtuali dovute a repentini rapidissimi spostamenti dell'oggetto.

Ecco: la funzione OnMouseMove che gestisce l'evento document.onmousemove mi dà valore alle variabili Sx e Hi, che sono le coordinate dell'angolo superiore sinistro dell'oggetto, ossia i lati sinistro e superiore del quadrato che costituisce l'oggetto.
Il codice, ovviamente, non muove minimamente l'oggetto.

Ora definiamo anche le coordinate degli altri lati, chiamiamole Dx e Lo.
var Sx,Hi,Dx,Lo;
E creiamo delle funzioni che le calcolino in relazione alla larghezza e all'altezza dell'oggetto.
function Dx(){
 return (Sx+oggetto.width);
}
function Lo(){
 return (Hi+oggetto.height);
}
Ecco.

La funzione OnMouseMove adesso ha questo aspetto:
function OnMouseMove(){
 
 Sx=BaseX+event.clientX-MouseX;
 Hi=BaseY+event.clientY-MouseY;
}
Proviamo a muovere l'oggetto...

che ovviamente non si muove.
Adesso concretizziamo le misure prese:
function OnMouseMove(){
 
 Sx=BaseX+event.clientX-MouseX;
 Hi=BaseY+event.clientY-MouseY;
 oggetto.style.left=Sx+"px";
 oggetto.style.top=Hi+"px";
}

e l'oggetto, come per incanto, si muove.

Ecco, adesso forse sarà più facile...

Nessun commento:

Posta un commento