目標
左矢印キーを押している間、円が左に移動するようにしたいです。
問題
円が左に移動しません。
HTML5
1<!DOCTYPE html> 2<html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>test</title> 6 </head> 7 <body> 8 <canvas width="" height=""></canvas> 9 <script src=".js"></script> 10 </body> 11</html>
JavaScript
1var cvs = document.querySelector("canvas"); 2cvs.width = window.innerWidth; 3cvs.height = window.innerHeight; 4var ctx = cvs.getContext("2d"); 5var x = cvs.width / 2; 6 7window.addEventListener("keydown", (evt) => { 8 if (evt.key == 37) { 9 x--; 10 } 11}); 12 13function upd() { 14 ctx.clearRect(0, 0, cvs.width, cvs.height); 15 ctx.beginPath(); 16 ctx.fillStyle = "#000"; 17 ctx.arc(x, cvs.height / 2, 20, 0, 360); 18 ctx.fill(); 19 ctx.closePath(); 20 requestAnimationFrame(upd); 21} 22 23upd();
解決のために行った事
- addEventListenerのkeydownは実はキー長押しが関係ないのではと思い、実は少しずつ移動しているのではないかと思ったので、addEventListener内のif文の処理を「x -= 100;」にしてみたことがありますが移動しませんでした。
- addEventListenerの記述を関数内の手前や関数内の後ろや関数外の後ろに書き直したこともありましたが円は移動しませんでした。
- 関数内のif文の条件式が「evt == 37」となっていたことに、質問を投稿した時気付きました。「evt.key == 37」に訂正したのですが、円は移動しませんでした。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2021/12/13 14:03