Salve, mi succede un'altra cosa strana.
Dopo aver mosso il mio div con i tasti direzionali, avvio una funzione fuga() che muove random un altro div "ladro".
In fuga(), dopo aver analizzato i vari casi in cui "ladro" si trova su un angolo o uno spigolo (inizialmente è nel div che circoscrive la "stanza" di gioco, leggermente a destra, mentre "guardia" è leggermente a sinistra), effettuo...
codice:
casuale = Math.floor(Math.random()*4);
if (casuale == 0) {
sopraL = Number(sopraL.substring(0, sopraL.length-2)) - 50;
document.getElementById("ladro").style.top = sopraL + "px";
} else if (casuale == 1) {
sinistraL = Number(sinistraL.substring(0, sinistraL.length-2)) - 50;
document.getElementById("ladro").style.left = sinistraL + "px";
} else if (casuale == 2) {
sinistraL = Number(sinistraL.substring(0, sinistraL.length-2)) + 50;
document.getElementById("ladro").style.top = sinistraL + "px";
} else if (casuale == 3) {
sopraL = Number(sopraL.substring(0, sopraL.length-2)) + 50;
document.getElementById("ladro").style.top = sopraL + "px";
}
succede che la posizione iniziale di "ladro" è
codice HTML:
<div id="ladro" style="top: 250px; left: 400px;">L</div>
Tuttavia capita che dopo la prima mossa di "guardia", salti a
codice HTML:
<div id="ladro" style="top: 450px; left: 400px;">L</div>
L'aumento di top è correlato con casuale == 3, ma credo sia chiaro che in tal caso al valore di sopraL, che è
codice HTML:
let sopraL = document.getElementById("ladro").style.top;
vada aggiunto 50, non 200!
Avvengono altri "salti" simili, sempre con "ladro" lontano dai bordi che "salta" sempre alterando l'attributo top del suo div, mai left.