やりたいこと実現したいことは、車の画像が最初Xが0、Yが150の位置にいて、
スタートボタンを押すと右に移動、Xが500、Yが150に行ったら下に移動。
Xが500、Yが400になったら左に移動。Xが0、Yが400になったら上に移動してスタート位置へ...という動きにしたいです。
曲がると画像も変わるようにしたいです。
あとストップを押すとその場にとまるようにしたいです。
今の状態は右を向いた車の画像とスタートボタンはあるのですが、
スタートボタンを押すとずっと右に進んでエラーがものすごい速度で増えていきます...。
わからない点はどうすればスタートボタンを押したら希望通りに動くか、とストップボタンの作り方です。
あと50分ほどでわからなかったら質問を終了したいと思います。
よろしくお願いいたします。
エラー SCRIPT5009: 'y' is not defined
① 車が移動するx座標は0~500,y座標は150~400 ② xが0~500 かつyが0~400だったら右に移動(移動範囲内) ③ ②以外の場合で,xが500より大きくなったら下に移動(右端に到達) ④ xが0より小さくなったら上に移動(左端に到達) ⑤ yが400より大きくなったら左に移動(下端に到達) ⑥ yが150より小さくになったら,xとyを初期値に戻す(上端に到達) 車の画像 [0]が右を向いています。 [1]が下を向いています。 [2]が左を向いています。 [3]が上を向いています。
今回質問したプログラム <!DOCTYPE html> <html lang = "ja"> <head> <meta charset="UTF-8"> <title>DOMを使用したアニメーション</title> <style type="text/css"> #car { position:absolute; top:150px; left:0px; height:70px; width:150px; } </style> <script> var imgFile= [];//画像ファイル 配列 imgFile[0]="images/car.jpg"; imgFile[1]="images/car2.jpg"; imgFile[2]="images/car3.jpg"; imgFile[3]="images/car4.jpg"; var INTERVAL = 10; var x = 0; var y = 0; var animating = false; var timer; function move() { var aCar = document.getElementById("car"); x += 5; aCar.style.left = x + "px"; aCar.style.top = y + "px"; if ((x >= 0 && x <= 500) && (y >= 150 && y <= 400)) {} else { if (x > 500) { x = 0; y = 150; x += 5; aCar.style.left = x + "px"; var img = imgFile[0]; console.log(img); } if (y > 400) { //x=500; //y=150; y += 5; var img = imgFile[1]; console.log(img); } if (x < 0) { //x=500; //y=400; x -= 5; var img = imgFile[2]; console.log(img); } if (y < 150) { //x=0; //y=400; y -= 5; var img = imgFile[3]; console.log(img); } } }/* ← 不足 */ function startStop() { if (animating) { clearInterval(timer); document.getElementById("btn").innerHTML = "スタート"; } else { timer = setInterval("move()", INTERVAL); document.getElementById("btn").innerHTML = "ストップ"; } aimating = !animating; } window.onload = function() { document.getElementById("btn").onclick = startStop; } </script> </head> <body> <h1>DOMによるアニメーション</h1> <img src="images/car.jpg" id="car"> <button id="btn">スタート</button> </body> </html>
回答1件
あなたの回答
tips
プレビュー