Le funzioni horOver e vertOver accertano che l'oggetto sia sulla proiezione orizzontale e, rispettivamente, verticale dell'ostacolo.
Poi abbiamo funzioni che accertano se l'oggetto sia sulla parte destra o sinistra della proiezione orizzontale, e, rispettivamente, verticale dell'oggetto.
Proseguo solo con l'orizzontale.
Come posso chiamare la funzione che mi accerta la presenza dell'oggetto sull'emiproiezione destra o sinistra?
Forse horOverDx e horOverSx. Mi sembra una denominazione mnemonicamente abbastanza facile.
Eccole:
function horOver(oggHi,oggLo,ost){ if(oggLo>=alto(ost) && oggHi<=basso(ost)) return true; } function vertOver(oggSx, oggDx, ost){ if(oggDx>=sinistro(ost) && oggSx <destro(ost)) return true; } function horOverDx(oggHi,oggLo,oggDx,ost){ if(horOver(oggHi,oggLo,ost) && oggDx>=sinistro(ost)) return true; } function horOverSx(oggHi,oggLo,oggSx,ost){ if(horOver(oggHi,oggLo,ost) && oggSx<=destro(ost)) return true; }Ecco. Ora vediamo se possiamo far capire al programma se l'oggetto arriva da destra o da sinistra.
function OnMouseMove(){ prevSx=sinistro(oggetto); prevDx=destro(oggetto); oggetto.style.left=BaseX+event.clientX-MouseX; if(horOverDx(alto(oggetto),basso(oggetto),destro(oggetto),ostacolo)&& prevDx<=sinistro(ostacolo)) $("test").innerHTML="Da sinistra"; if(horOverSx(alto(oggetto),basso(oggetto),sinistro(oggetto),ostacolo)&& prevSx>=destro(ostacolo)) $("test").innerHTML="Da destra";Bene! Se l'oggetto va a sovrapporsi all'ostacolo da sinistra, nella casella test appare "Da sinistra", mentre se va a sovrapporsi da destra nella casella test appare "Da destra".
Riuscito!
Nessun commento:
Posta un commento