![]() |
|
||||||||||
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Цитата:
Цитата:
Цитата:
Цитата:
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Jan 2013
Адрес: Москва, Сходня
Сообщений: 41
|
Ура! Я понял о чем Вы говорили и написал передвижение своего жука по всем правилам. Прочитал Ваш последний пост и всё сходится. Теперь намного лучше понимаю ООП.
Последний раз редактировалось zzSpirit; 08.01.2013 в 19:09. |
|
|||||
|
[+1 22.04.13]
[+1 06.03.13] Регистрация: Apr 2012
Сообщений: 239
|
Цитата:
|
|
|||||
|
Регистрация: Jan 2013
Адрес: Москва, Сходня
Сообщений: 41
|
Цитата:
А если if else if или switch использовать - то нажатия двух клавиш одновременно не будут фиксироваться. По-моему пример юзера samana правильный. Добавлено через 5 минут Упс, а хотя да. e.keyCode не может быть равен двум значениям, нужно использовать switch. Только не совсем понимаю, если нажаты 2 и более клавиш, то через кадр по очереди будут разные коды в e.keyCode? Как тогда определяется нажатие двух клавиш, ведь действительно e.keyCode не может равняться двум значениям, если он не массив... |
|
|||||
|
В вашем классе Keys функция onKeyDown и onKeyUp должна выглядеть так:
private function onKeyDown(event:KeyboardEvent):void { if (event.keyCode == 38) { up = true; } else if (event.keyCode == 40) { down = true; } else if (event.keyCode == 37) { left = true; } else if (event.keyCode == 39) { right = true; } } Добавлено через 3 минуты Цитата:
Цитата:
|
|
|||||
|
Регистрация: Jan 2013
Адрес: Москва, Сходня
Сообщений: 41
|
Цитата:
keyCode: 40 keyCode: 39 keyCode: 39 keyCode: 39 keyCode: 39 keyCode: 39 и так далее... Дальше всегда 39 Добавлено через 5 минут Изменил. понимаю, что так правильнее, хотя разницы и нету. По идее, быстрее должно работать. Добавлено через 7 минут Нет, я имел ввиду не как определить что нажаты две клавиши, а как AS3 определяет, что нажаты 2 клавиши. Посмотрите output. Там кейкод клавиши которая первая была нажата, а потом уже идет только кейкод клавиши, которая была нажата второй. Они идут не по очереди. Добавлено через 14 минут Изменил ИФы на Свитчи. И код лучше читается и меньше по размеру и правильней. Теперь там такие конструкции: |
|
|||||
|
AS3 никак не определяет что две клавиши нажаты. Это должны делать вы сами.
|
|
|||||
|
Регистрация: Jan 2013
Адрес: Москва, Сходня
Сообщений: 41
|
Обновленный архив с проектом загрузил по той же ссылке.
Добавлено через 1 минуту Цитата:
При этом обе клавиши равны true. Хотя кейкод первой клавиши он больше не получал. Добавлено через 4 минуты Ой, опять туплю. Всё правильно. Первая клавиша не должна стать false, если не поступило команды о ее отпускании. Извиняюсь. |
|
|||||
|
Все правильно. В output выводится информация о том, какая клавиша сейчас нажата. Обе клавишы равны true потому, что вы в коде это учли.
|
|
|||||
|
Регистрация: Jan 2013
Адрес: Москва, Сходня
Сообщений: 41
|
Да. Уже написал выше. Всё правильно. Не было команды false для первой клавиши, поэтому она всегда была true, а в output выводился кейкод второй клавиши.
Добавлено через 1 час 24 минуты Wolsh, Благодарю за книгу. Буду ее очень внимательно изучать. Благодаря Вашим подробным обьяснениям, многое понял. Большое Вам спасибо! Последний раз редактировалось zzSpirit; 08.01.2013 в 18:56. |
![]() |
![]() |
Часовой пояс GMT +4, время: 12:02. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|