2017-11-20 23 views
0

は、私はそれが特定の場所に到達したときに、画像の位置をリセットしようとしていると私は写真の場所が特定の場所に到着したときに、写真の場所をリセットするにはどうすればよいですか? ...

if(x == 557 && y == 533){ 
    x = 300; 
    y = 300; 
    }; 
},1000); 

文は、xとy座標をリセットするだろうと思ったが、私は間違っていた

var canvas = document.querySelector("#myCanvas"); 
var context = canvas.getContext("2d"); 
var canvasWidth = context.canvas.width, canvasHeight = context.canvas.height; 
var x = 300; 
var y = 300; 
trash(); 
mrTrumpet(); 
function trash(){ 
    var trsh = new Image(); 
    trsh.src = "trash.png"; 
    trsh.onload = function(){ 
    context.drawImage(trsh, 559, 550); 
    }; 
}; 
function mrTrumpet(){ 
    var img = new Image(); 
    img.src = "character.png"; 
    img.onload = function(){ 
    context.drawImage(img, x, y); 
    }; 
}; 
function move(e){ 
    if(e.keyCode==68){x++}; 
    if(e.keyCode==65){x--}; 
    if(e.keyCode==87){y--}; 
    if(e.keyCode==83){y++}; 
    canvas.width=canvas.width; 
    trash(); 
    mrTrumpet(); 
}; 
setInterval(function(){ 
    console.log("x = " + x + ", y = " + y); 
},1000); 
setInterval(function(x, y){ 
    if(x == 557 && y == 533){ 
    x = 300; 
    y = 300; 
    }; 
},1000); 
document.onkeydown = move; 

答えて

0

2番目のsetIntervalコールのパラメータは、グローバルxyの値をシャドーイングしています。

試してみてください。

setInterval(function() { 
    if(x == 557 && y == 533){ 
    x = 300; 
    y = 300; 
    }; 
}, 1000); 

また、誰かがBOTTOMにRIGHTまたはWAYに画像WAYを動かす独立しないように値をチェックすることもできます。

setInterval(function(){ 
    if (x == 557) x = 300; 
    if (y == 533) y = 300; 
}, 1000); 

「エッジ」に達したときに画像を左または上にリセットします。

関連する問題