Не надо делать огромные if-блоки. if блоки должны быть маленькие!
|
Есть всего 8 состояний. Каждое состояние запускает свою функцию. Внутри условия только запуск функции. Функция с условиями запускает сама себя каждые n милисек. пока нажата любая из кнопок.
|
Цитата:
как можно не видя кода ответить на это: Цитата:
|
document.onkeydown = function(e) {
if(e.keyCode==37) { tank.vector = "left"; if(tank.x>0) { tank.x-=4; } } |
Вот код движения танка (персонажа).
|
Какой же дожен быть алгоритм?
|
Эээ.. А вы делаете без ООП?
|
Поскольку в коде присутствуют объекты, то это 100% ооп
|
А, да, мой косяк.
|
var keys = { up : false, down : false, left : false, right : false }; function onkeydown(event){ if(event.keyKode === 323){ keys.up = true; } else if(event.keyKode === 32) { keys.down = true; } } function onkeyup(event){ if(event.keyKode === 323){ keys.up = false; } else if(event.keyKode === 32) { keys.down = false; } } в keys всегда хранится актуальное состояние нажатых клавиш. кэп |
Часовой пояс GMT +3, время: 02:12. |