Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我不知道';“我不想要我的”;“玩家”;要离开屏幕,如何防止出现这种情况?_Javascript_Html_Canvas_Keydown - Fatal编程技术网

Javascript 我不知道';“我不想要我的”;“玩家”;要离开屏幕,如何防止出现这种情况?

Javascript 我不知道';“我不想要我的”;“玩家”;要离开屏幕,如何防止出现这种情况?,javascript,html,canvas,keydown,Javascript,Html,Canvas,Keydown,这是我的JavaScript。在底部附近,您将看到一个用于keydown事件的addEventListener。在该函数中,存在键控代码。该代码被包装在一个if函数中,if函数中包含的内容阻止播放器离开画布 function initCanvas() { var canvas = document.getElementById('my_canvas'); var ctx = canvas.getContext('2d'); var cW = ctx.canvas.widt

这是我的JavaScript。在底部附近,您将看到一个用于keydown事件的addEventListener。在该函数中,存在键控代码。该代码被包装在一个if函数中,if函数中包含的内容阻止播放器离开画布

function initCanvas() {
    var canvas = document.getElementById('my_canvas');
    var ctx = canvas.getContext('2d');
    var cW = ctx.canvas.width;
    var cH = ctx.canvas.height;
    var dist = 10;

    function Player() {
        this.x = 0, this.y = 0, this.w = 50, this.h = 50;

        this.render = function() {
            ctx.fillStyle = "orange";
            ctx.fillRect(this.x, this.y, this.w, this.h);
        }
    }

    var player = new Player();
    player.x = 100;
    player.y = 225;

    function animate() {
        ctx.fillStyle = '#000';
        ctx.fillRect(0, 0, canvas.width, canvas.height);
        player.render();
     }
    var animateInterval = setInterval(animate, 30);

    document.addEventListener('keydown', function(event) {
        var key_press = String.fromCharCode(event.keyCode);
        if (//I don't know what should go here) {
            if (key_press == "W") {
                player.y -= dist;
            } else if (key_press == "S") {
                player.y += dist;
            } else if (key_press == "A") {
                player.x -= dist;
            } else if (key_press == "D") {
                player.x += dist;
            }
        }
    });

}

window.onload = initCanvas();
document.addEventListener('keydown',函数(事件){
var key_press=String.fromCharCode(event.keyCode);
if(//我不知道这里应该放什么){
如果(按键按下==“W”和&player.y>=距离){
player.y-=距离;
}else if(按键=S和播放器y=距离){
player.x-=距离;
}否则如果(按键按下==“D”和&player.x<(cW-dist)){
player.x+=距离;
}
}
});
额外检查将检查他是否不在画布边缘,也不在距离画布边缘
的位置假设左上角为(0,0)。


请注意,当用户与画布保持一定距离时,最好将其移动到画布边缘。我将把这件事留给你。

明确检查他是否不在屏幕边缘(也不在距离边缘document.addEventListener('keydown', function(event) { var key_press = String.fromCharCode(event.keyCode); if (//I don't know what should go here) { if (key_press == "W" && player.y >= dist) { player.y -= dist; } else if (key_press == "S" && player.y <= (cH - dist)) { player.y += dist; } else if (key_press == "A" && player.x >= dist) { player.x -= dist; } else if (key_press == "D" && player.x < (cW - dist)) { player.x += dist; } } });