Комбинация событий

Рейтинг: 0Ответов: 1Опубликовано: 26.09.2014

Слушаю события нажатия клавиш (стрелок).

var keyMap = {
    38: "up",
    ....
};
$(document).bind('keydown', function(e) {
    if(keyMap[e.keyCode] == undefined) {
        return;
    }
    player.walk(keyMap[e.keyCode]);
});

Есть ситуация: когда нажимаешь на 2 кнопки одновременно, все плохо. Как реализовать управление игроком? Отключать события и начинать работать по таймеру? Если кто стыкался, просьба поделится опытом.

Ответы

▲ 1Принят

Вариантов много. Один из них:

var v = 0, h = 0; // Vertical/Horizontal force
switch (keyMap[e.keyCode]) {
    case KEY_DOWN:
        v = -1;
    case KEY_UP:
        v = 1;
    case KEY_LEFT:
        h = -1;
    case KEY_RIGHT:
        h = 1;
}