Не надо делать огромные 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, время: 07:31. |