venerdì 20 febbraio 2015

Collisioni col canvas: individuare la direzione di un oggetto verso un altro.

Una volta create le funzioni che stabiliscono le posizioni dell'ostacolo rispetto al mobile, cerco di cogliere il momento in cui il mobile, nel suo movimento, va a sovrapporsi all'ostacolo.
Ecco le funzioni:
function scavalcaBasso(puntatore, mobile, ostacolo){
 if(ostacoloInBasso(mobile, ostacolo) && puntatore+mobile.h>alto(ostacolo)) return true;
 return false;
}
function scavalcaAlto(puntatore,mobile,ostacolo){
 if(ostacoloInAlto(mobile,ostacolo) && puntatore<basso(ostacolo))return true;
 return false;
}
function scavalcaDestra(puntatore,mobile,ostacolo){
 if(ostacoloADestra(mobile,ostacolo) && puntatore+mobile.w>sinistra(ostacolo))return true;
 return false;
}
function scavalcaSinistra(puntatore,mobile,ostacolo){
 if(ostacoloASinistra(mobile,ostacolo) && puntatore<destra(ostacolo))return true;
 return false;
} 
Ed eccole applicate nell'evento OnMouseMove:
function OnMouseMove(evt){
 puntoX=evt.pageX-canvas.offsetLeft;
 puntoY=evt.pageY-canvas.offsetTop;
 
 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;
} 
E adesso mi ci faccio anche un filmato:



Abbiamo dunque creato il modo di individuare la direzione nella quale arriva il mobile sull'ostacolo.

Nessun commento:

Posta un commento