venerdì 20 febbraio 2015

Collisioni con un ostacolo completate.

Il passo successivo è respingere nella direzione voluta il mobile a seconda della direzione di arrivo sull'ostacolo.

Con questo codice sembra funzionare tutto.
function OnMouseMove(evt){
 puntoX=evt.pageX-canvas.offsetLeft;
 puntoY=evt.pageY-canvas.offsetTop;
 direzione="";
 if(scavalcaDestra(puntoX,rettangolo,ostacolo))direzione="destra";
 if(scavalcaSinistra(puntoX,rettangolo,ostacolo)) direzione="sinistra";
 if(scavalcaAlto(puntoY,rettangolo,ostacolo))direzione="alto";
 if(scavalcaBasso(puntoY,rettangolo,ostacolo))direzione="basso";
 scrivi(direzione);
 rettangolo.x=puntoX;
 rettangolo.y=puntoY;
 if(direzione=="basso")rettangolo.y=alto(ostacolo)-rettangolo.h;
 if(direzione=="alto")rettangolo.y=basso(ostacolo);
 if(direzione=="destra")rettangolo.x=sinistra(ostacolo)-rettangolo.w;
 if(direzione=="sinistra")rettangolo.x=destra(ostacolo);
 
}
A ogni movimento del mouse azzero "direzione", che viene poi individuata con le funzioni che modificano la variabile direzione e quindi, quando il mobile acquisisce le coordinate del puntatore del mouse, verrà respinto nella direzione voluta a seconda del valore assunto dalla variabile direzione.
Ecco un filmato:

Nessun commento:

Posta un commento