|
|
|||||
Регистрация: May 2012
Сообщений: 2
|
Программное движение
Здравствуйте!
Решил написать простенькую игру. Код ниже отвечает за движение объекта mc вправо. При зажиме клавиши Вправо объект mc передвигается вправо на 10 пикселей, далее следует небольшая задержка, потом объект начинает двигаться нормально. Можно ли как-то ускорить процесс? |
|
|||||
блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,112
Записей в блоге: 1
|
В обработчике события нажатия на клавишу меняйте значения moveX и moveY на -1 и 1 (в зависимости от направления движения). В обработчике события отжатия клавиш - обнуляйте значения. В обработчике ENTER_FRAME проверяйте эти значения и, например, координату x меняйте таким образом: mc.x = moveX * moveSpeed.
__________________
hauts.ru |
|
|||||
Регистрация: May 2012
Сообщений: 2
|
Честно говоря, я ничего не понял из того что Вы сказали, но благодаря Вам удалось осуществить что-то похожее)
stop(); stage.addEventListener(KeyboardEvent.KEY_DOWN, onKD); stage.addEventListener(KeyboardEvent.KEY_UP, onKU); addEventListener(Event.ENTER_FRAME, onFr); var moveX:Number = 0; function onFr(e:Event):void { if(moveX==1) { mc.x= mc.x + 10;; } } function onKD(e:KeyboardEvent):void { if(e.keyCode == 39) { moveX = 1; mc.x = mc.x + 1;; mc.gotoAndStop(2); } } function onKU(e:KeyboardEvent):void { mc.gotoAndStop(1); moveX = 0; } Последний раз редактировалось Quatro0; 12.05.2012 в 22:49. |
|
|||||
Регистрация: Aug 2011
Сообщений: 103
|
Можно - надо передвигать по таймеру! - при зажиме клавиши запустить таймер, и каждую единицу времени увеличивать или уменьшать значение икс.
То, что происходит задержка - это не flash виноват - это клавиатура так настроена - так и должно быть. сначала набирается символ, затем после задержки дублируется, если клавиша не отпущена. |
|
|||||
Регистрация: Apr 2011
Сообщений: 38
|
я по-другому делал. вешаем два обработчика события KeyboardEvent.KEY_DOWN и KeyboardEvent.KEY_UP на соотв. функции, и по коду нажатой (или отжатой) клавиши меняем соответствующее значение массива или объекта, в зависимости от реализации. а третья функция запускается когда надо выяснить состояние кнопок игрока - по ENTER_FRAME например. и возвращает состояния кнопок (тот самый массив)
|
|
|||||
Регистрация: Aug 2011
Сообщений: 103
|
|
Часовой пояс GMT +4, время: 14:47. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|