Dunque, partiamo da zero...
L'oggetto scivola contro l'ostacolo in virtù del fatto che viene continuamente riportato, dalla sua posizione reale, ossia quella "attaccata" al cursore del mouse, nella posizione virtuale, ossia quella "aderente alla superficie dell'ostacolo". Il processo si svolge ogni volta che il cursore viene mosso, perchè questa funzione
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); }che intercetta l'evento "movimento del mouse", chiamando la funzione "verificaDirezione", dà all'oggetto delle coordinate corrispondenti alla posizione "strisciante sulla superficie dell'oggetto". A ogni movimento del mouse, in realtà, l'oggetto torna "attaccato al puntatore", per poi essere riportato "strisciante sull'oggetto".
La cosa non si nota perchè è molto rapida.
Così, se incontro un altro ostacolo attaccato al primo, e ripeto la funzione con il secondo ostacolo, ponendo come parametri della funzione le coordinate dell'oggetto, in realtà fornisco le coordinate "reali", ossia dell'oggetto che, per una frazione invisibile di secondo, si trova attaccato al cursore del mouse, non le coordinate "virtuali", ossia dell'oggetto che strofina contro il bordo dell'ostacolo.
Nessun commento:
Posta un commento