Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 09.04.2013, 17:27
Профессор
Отправить личное сообщение для tsigel Посмотреть профиль Найти все сообщения от tsigel
 
Регистрация: 12.12.2012
Сообщений: 1,398

Не надо делать огромные if-блоки. if блоки должны быть маленькие!
Ответить с цитированием
  #12 (permalink)  
Старый 09.04.2013, 17:29
Профессор
Отправить личное сообщение для tsigel Посмотреть профиль Найти все сообщения от tsigel
 
Регистрация: 12.12.2012
Сообщений: 1,398

Есть всего 8 состояний. Каждое состояние запускает свою функцию. Внутри условия только запуск функции. Функция с условиями запускает сама себя каждые n милисек. пока нажата любая из кнопок.
Ответить с цитированием
  #13 (permalink)  
Старый 09.04.2013, 17:49
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Сообщение от Valdemor
Белые)
нет конечно.
как можно не видя кода ответить на это:
Сообщение от Valdemor
Кстати, если персонаж движется влево, и я сразу же нажимаю вверх, то персонаж стоит еще ~полсекунды. Почему?
Хотя можно -алгоритм неверный в корне
Ответить с цитированием
  #14 (permalink)  
Старый 09.04.2013, 17:54
Кандидат Javascript-наук
Отправить личное сообщение для Valdemor Посмотреть профиль Найти все сообщения от Valdemor
 
Регистрация: 30.03.2012
Сообщений: 128

document.onkeydown = function(e) {
if(e.keyCode==37) {
tank.vector = "left";
if(tank.x>0) {
tank.x-=4;
}
}
Ответить с цитированием
  #15 (permalink)  
Старый 09.04.2013, 17:54
Кандидат Javascript-наук
Отправить личное сообщение для Valdemor Посмотреть профиль Найти все сообщения от Valdemor
 
Регистрация: 30.03.2012
Сообщений: 128

Вот код движения танка (персонажа).
Ответить с цитированием
  #16 (permalink)  
Старый 09.04.2013, 17:54
Кандидат Javascript-наук
Отправить личное сообщение для Valdemor Посмотреть профиль Найти все сообщения от Valdemor
 
Регистрация: 30.03.2012
Сообщений: 128

Какой же дожен быть алгоритм?
Ответить с цитированием
  #17 (permalink)  
Старый 09.04.2013, 17:56
Профессор
Отправить личное сообщение для tsigel Посмотреть профиль Найти все сообщения от tsigel
 
Регистрация: 12.12.2012
Сообщений: 1,398

Эээ.. А вы делаете без ООП?
Ответить с цитированием
  #18 (permalink)  
Старый 09.04.2013, 18:26
Кандидат Javascript-наук
Отправить личное сообщение для Valdemor Посмотреть профиль Найти все сообщения от Valdemor
 
Регистрация: 30.03.2012
Сообщений: 128

Поскольку в коде присутствуют объекты, то это 100% ооп
Ответить с цитированием
  #19 (permalink)  
Старый 09.04.2013, 18:29
Профессор
Отправить личное сообщение для tsigel Посмотреть профиль Найти все сообщения от tsigel
 
Регистрация: 12.12.2012
Сообщений: 1,398

А, да, мой косяк.
Ответить с цитированием
  #20 (permalink)  
Старый 09.04.2013, 20:06
Аватар для megaupload
Профессор
Отправить личное сообщение для megaupload Посмотреть профиль Найти все сообщения от megaupload
 
Регистрация: 18.01.2013
Сообщений: 1,098

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 всегда хранится актуальное состояние нажатых клавиш. кэп
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Книга: JavaScript. Сильные стороны Magneto Учебные материалы 16 21.04.2013 15:28
Интерпретатор Java на JS kobezzza Оффтопик 24 11.10.2012 18:32
Первый Moscow JavaScript Meetup korenyushkin Общие вопросы Javascript 0 26.07.2011 15:23
Последние книги по JavaScript! monolithed Учебные материалы 7 26.10.2010 19:40
Выдвет ошибку JavaScript Ромио Opera, Safari и др. 4 21.10.2010 20:34