私は簡単なゲームを作成しようとしています。左右のボタンを押すと、画像が移動することになっています(そして別の画像間で変化しますtrexf
)trexb
。
<canvas id="canvas" width="640" height="480" >
Browser doesn't support canvas.
</canvas>
var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');
var width, height, rightKey = false, leftKey = false, upKey = false, downKey = false, rex_x, rex_y = 300, trexf, trexb;
trexf = new Image('Trexf.png');
trexb = new Image('Trexb.png');
function clearCanvas() {
canvas.width = canvas.width;
}
function drawRex() {
if(rightKey) {
rex_x += 5;
} else if(leftKey) {
rex_x -= 5;
}
ctx.drawImage(trexf, rex_x, rex_y);
if(rightKey == false || leftKey == false) {
ctx.drawImage(trexb, rex_x, rex_y);
}
}
function loop() {
clearCanvas();
drawRex();
}
function keyDown(e) {
if(e.keyCode == 39)
rightKey = true;
else if(e.keyCode == 37)
leftKey = true;
}
function keyUp(e) {
if(e.keyCode == 39)
rightKey = false;
else if(e.keyCode == 37)
leftKey = false;
}
function init() {
ctx.canvas.width = window.innerWidth - 30;
ctx.canvas.height = window.innerHeight - 30;
document.addEventListener('keydown', keyDown, false);
document.addEventListener('keyup', keyUp, false);
rex_x = canvas.width / 2;
setInterval(loop, 1000);
}
init();
JSFiddleで試してみてください。
なぜこれが期待どおりに機能しないのですか?