Nel programma qui sotto viene eseguita l'istruzione if (x>=1290 || x<=200){dx=-dx}, cioè se
(x>=1290 || x<=200) è true si ha dx=-dx.
Stranamente invece, non viene eseguita l'istruzione if (y>= 550 || y<=10){dy=-dy}, cioè se
(y>= 550 || y<=10) è true non sia dy=-dy, ma dy resta dy.
Dando un valore alla velocità, per es. 10, e un altro all'angolo, per es. 30, la pallina rimbalza tra sinistra(200px) e destra(1290px), ma non rimbalza sotto(top 550px) e va oltre. Lo stesso in alto(top 10).
Per controllare quanto ho detto, in alto ho scritto in due caselle di testo i valori di y(top) e della condizione true o false di (y>= 550 || y<=10).
Desidererei sapere il perché di questa anomalia. Grazie
lanvoel
codice:<!DOCTYPE html PUBLIC> <html> <head> <script language=JavaScript> var oggetto; var intervallo; var x=200;var y=250; var dx=1;var dy=1; function avvia() { velo=testo1.value; intervallo=window.setInterval("muovi()",velo); } function muovi() { oggetto=document.getElementById("para1"); x=x+dx; var alfa=angolo.value; dy=dx*Math.tan(alfa*3.14159/180); y=y+dy; if (x>=1290 || x<=200){dx=-dx} if (y>= 550 || y<=10){dy=-dy} oggetto.style.position="absolute"; oggetto.style.top =y; oggetto.style.left =x; testo2.value=y; testo3.value= (y>= 550 || y<=10); } function ferma1() { clearInterval(intervallo); } </script </head> <body> controllo valori di y (top)<input type="text" name="testo2" id="testo2" size=25> controlollo condizione (y>= 550 || y<=10)<input type="text" name="testo3" id="testo3" size=15><br><br> <input type="button" name="pulsanre1" id="pulsante1" value="avvia" onclick="avvia()"><br> <br> velocità (alta:1 bassa:200)<br> <input type="text" name="testo1" id="testo1" size=20><br><br> angolo di partenza in gradi:<br> <input type="text" name="angolo" id="angolo" size=10><br><br> <input type="button" name="pulsante2" id="pulsante2" value="ferma" onclick="ferma1()"> <P style="background:yellow; width:1100; height:550; border:3px red double; position:absolute; left:200px; top:10px;"></P> <P Style="background:red; width:10px; height:10px; border:3px blue solid; position:absolute; left:200px; top:250px;" id="para1"> </body> </html>

Rispondi quotando