Prima fondiamo le funzioni, in modo da isolare il lavoro sporco...
Ecco il codice che verifica la direzione usando le funzioni predette:
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"; if(vertOverHi(sinistro(oggetto),destro(oggetto),basso(oggetto),ostacolo) && prevLo<=alto(ostacolo)) $("test").innerHTML="Da alto"; if(vertOverLo(sinistro(oggetto),destro(oggetto),alto(oggetto),ostacolo) && prevHi>=basso(ostacolo)) $("test").innerHTML="Da basso";Come unificarlo?
Creo un'unica funzione verifica:
function verificaDirezione(oggSx,oggDx,oggHi,oggLo,ost){ if(horOverDx(oggHi,oggLo,oggDx,ost)&& prevDx<=sinistro(ost)) $("test").innerHTML="Da sinistra"; if(horOverSx(oggHi,oggLo,oggSx,ost)&& prevSx>=destro(ost)) $("test").innerHTML="Da destra"; if(vertOverHi(oggSx,oggDx,oggLo,ost) && prevLo<=alto(ost)) $("test").innerHTML="Da alto"; if(vertOverLo(oggSx,oggDx,oggHi,ost) && prevHi>=basso(ost)) $("test").innerHTML="Da basso"; }Eccola, e viene richiamata così:
function OnMouseMove(){ prevSx=sinistro(oggetto); prevDx=destro(oggetto); prevHi=alto(oggetto); prevLo=basso(oggetto); oggetto.style.left=BaseX+event.clientX-MouseX; oggetto.style.top=BaseY+event.clientY-MouseY; verificaDirezione(sinistro(oggetto),destro(oggetto),alto(oggetto),basso(oggetto),ostacolo); }Funziona!
Nessun commento:
Posta un commento