我一直在試圖做一些看起來應該很簡單的事情,但我一直在打牆。我想編寫JavaScript代碼,該代碼需要在畫布標籤內部繪製圖像並通過鍵盤輸入移動它。當我按下右箭頭鍵時,我希望圖像向右移動。當我按左箭頭鍵時,我想讓圖像向左移動。我希望它繼續前進,直到我釋放密鑰爲止,對每次按下按鍵時滑動一下的東西我都不感興趣。這是我到目前爲止:使圖像在<canvas>與JavaScript鍵盤輸入移動?
<html>
<body onload="load_image()">
<canvas id="myCanvas" width="320" height="240" style="border:1px solid #000000;">
<img id="testpic" src="testpic.png">
</canvas>
<script>
function load_image() {
var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d");
var img = document.getElementById("testpic");
ctx.drawImage(img,10,10);}
document.addEventListener('keydown', function(event) {
if (event.keyCode == 37) {
// CODE THAT STARTS LEFT IMAGE MOVEMENT GOES HERE.
}
else if (event.keyCode == 39) {
// CODE THAT STARTS RIGHT IMAGE MOVEMENT GOES HERE.
}
}, true);
document.addEventListener('keyup', function(event) {
if (event.keyCode == 37) {
// CODE THAT STOPS LEFT IMAGE MOVEMENT GOES HERE.
}
else if (event.keyCode == 39) {
// CODE THAT STOPS RIGHT IMAGE MOVEMENT GOES HERE.
}
}, true);
</script>
</body>
</html>
我一直在嘗試從幾個網站的例子,但沒有一個工作。我能做的最好的事情是通過按鍵來反覆重繪圖像,這對我不起作用。任何提示或指導將不勝感激。如果你向我介紹工作代碼,我會愛你的!
「我能做的最好的事情是用鍵盤重複地重新繪製圖像,這對我不起作用。」我很抱歉地說你不能用其他方式。要在畫布中獲得某些動畫,您需要重繪它。 – evolutionxbox
@evolutionxbox:那麼,HTML5畫布真的是那個貧民窟?你必須反覆移除/重繪才能獲得滑動圖像效果?這對我來說似乎很荒謬。 – Matthew
這不是貧民窟。這就是所有動畫的工作原理。使用CSS,您(程序員)無法訪問該動畫級別。 這就是你的電腦如何在你的顯示器上放置圖像。它一次又一次地以大約60倍的速度繪製它們。 – evolutionxbox