проблема перемещения ключевого кода с javascript (PacMan) - PullRequest
1 голос
/ 02 августа 2020

 <script>

    var world = [
        [2,2,2,2,2,2,2,2,2,2],
        [2,1,1,2,1,1,1,1,1,2],
        [2,1,1,2,1,2,2,2,1,2],
        [2,1,1,2,1,2,1,2,1,2],
        [2,1,1,2,1,2,1,2,1,2],
        [2,1,1,2,2,2,1,2,1,2],
        [2,1,1,1,1,1,1,2,1,2],
        [2,1,1,1,1,1,1,1,1,2],
        [2,2,2,2,2,2,2,2,2,2],
    ];

    var pacman = {
        x: 29,
        y: 29,
    };

    function displayWorld(){
        var output = '';

        for(var i = 0; i < world.length; i++){
            output += "\n<div class='row'>\n";
            for(var j = 0; j<world[i].length; j++){
                if(world[i][j] == 2)
                    output +="\n<div class='brick'></div>";
                else if (world[i][j] == 1)
                    output += "\n<div class='coin'></div>";
                if (world[i][j] == 0)
                output += "\n<div class='empty'></div>";
            }
            output += "\n</div>";
        }
        //console.log(output);
        document.getElementById('world').innerHTML = output;
    }
    function displayPacman(){
        document.getElementById('pacman').style.left= pacman.x+"px";
        document.getElementById('pacman').style.top= pacman.y+"px";
    }

    displayWorld();
    displayPacman();

    document.onkeydown = function(e){
        if(e.keyCode== 37){
            pacman.x -= 30;
        }
        else if(e.keyCode== 39){
            pacman.x += 30;
        }
        else if(e.keycode== 38){
            pacman.y -= 30;
        }
        else if(e.keycode== 40){
            pacman.y += 30;
        }    
        console.log(e.keyCode);
        displayPacman();
    }
    </script>
</body>
</html>

Я работаю над простой игрой Pacman, и у меня проблемы с перемещением моего Pacman вверх и вниз. Pacman будет перемещаться влево и вправо без проблем, что позволяет мне знать, что мой идентификатор pacman работает, а мой VAR y - нет. Я, наверное, упустил что-то простое, но не вижу. Пожалуйста, помогите

1 Ответ

3 голосов
/ 02 августа 2020
if (e.keyCode == 37) {
    pacman.x -= 30;
} else if (e.keyCode == 39) {
    pacman.x += 30;
} else if (e.keyCode == 38) {
    pacman.y -= 30;
} else if (e.keyCode == 40){
    pacman.y += 30;
}    

keyCode чувствителен к регистру

Вы использовали

else if(e.keycode== 40){

вместо keyCode

...