//CODICE CHE MUOVE L'OGGETTO if(MoveRight) MuoviADestra(); if(MoveLeft) MuoviASinistra(); if (destro(oggetto)>400) { oggetto.style.left=(400-larghezza(oggetto))+"px"; MoveRight=false; }else{ MoveRight=true; }ora sostituisco la funzione daSinistra().
//CODICE CHE MUOVE L'OGGETTO if(MoveRight) MuoviADestra(); if(MoveLeft) MuoviASinistra(); if (daSinistra(oggetto,ostacolo)) { oggetto.style.left=(sinistro(ostacolo)-larghezza(oggetto))+"px"; MoveRight=false; }else{ MoveRight=true; }E ottengo la possibilità di aggirare l'ostacolo, ossia l'oggetto impatta contro il limite dell'ostacolo solo nel punto in cui l'ostacolo è presente, altrimenti arriva fino in fondo allo schermo.
No! Correzione:
//CODICE CHE MUOVE L'OGGETTO
if(MoveRight) MuoviADestra();
if(MoveLeft) MuoviASinistra();
if (prevDex<=sinistro(ostacolo) && daSinistra(oggetto,ostacolo)) {
oggetto.style.left=(sinistro(ostacolo)-larghezza(oggetto))+"px";
MoveRight=false;
}else{
MoveRight=true;
}
Così funziona, altrimenti mi porta l'oggetto sulla sinistra dell'ostacolo anche quando si trova sulla destra.
Se muovo l'oggetto da destra, invece, esso attraversa ancora l'ostacolo. Inseriamo anche il reciproco della funzione da destra.
//CODICE CHE MUOVE L'OGGETTO
if(MoveRight) MuoviADestra();
if(MoveLeft) MuoviASinistra();
if (prevDex<=sinistro(ostacolo) && daSinistra(oggetto,ostacolo)) {
oggetto.style.left=(sinistro(ostacolo)-larghezza(oggetto))+"px";
MoveRight=false;
}else{
MoveRight=true;
}
if (prevSin>=destro(ostacolo) && daDestra(oggetto,ostacolo)) {
oggetto.style.left=destro(ostacolo)+"px";
MoveLeft=false;
}else{
MoveLeft=true;
}
E funziona altrettanto.