|
|
|||||
Регистрация: Jul 2008
Сообщений: 912
|
Управление с клавиатуры
Хотел спросить как делается так, что-б клавиши не мешали друг другу? Вот первый раз решил игру сделать а тут проблема такая. У меня Spsce - прыжок; Left, Right - идти налево и напрво, так вот когда объект передвигается - жму Space он прыгает и останавливается хотя кнопку движения не отпускаю... Как сделать так, что-б кнопки не перебивали друг друга?
|
|
|||||
Регистрация: Jul 2008
Сообщений: 912
|
Нет не то, при чём тут клавиатура? Это я что-то не правильно делаю...
вот код: при таком коде: нажимаеш клавишу "вправо" и удерживаеш - обьект перемещается вправо, потом нажимаеш "спэйс"(не отпуская "вправо") обьект прыгает и больше не перемещается вправо, хотя клавиша "вправо" ещё нажата, что-б опять начать перемещаться вправо - нужно отпустить клавишу "вправо" и нажать её снова - движение возобновится. Но мне нужно, что-б "спэйс" не мешал клавише "вправо", не останавливал движение... |
|
|||||
http://www.flasher.ru/forum/showthre...highlight=wasd
Похоже, оно. Нужно данную тему где-то закрепить, что ли. А то слишком много таких вопросов стало.
__________________
тут я |
|
|||||
Регистрация: Jul 2008
Сообщений: 912
|
я с клавиатурой впервые работаю вот и вопросы возникают, вот ещё один:
как сделать так что-б при зажатии спэйс происходил 1 прыжок? У меня при зажатой спэйс происходят многократные прыжки, нужно, что-б 1 раз прыгнул... |
|
|||||
Регистрация: Feb 2009
Сообщений: 1,195
|
Заведите флаг для прыжка. При отпускании пробела он сбрасывается, при нажатии смотрите, установлен-ли он - если нет, то прыгаете и устанавливаете.
|
|
|||||
Регистрация: Jul 2008
Сообщений: 912
|
Спасибо, разобрался, не знал, что кнопки так себя ведут - приходится использовать Boolean. Кстати ответы Bgg, КорДум, gloomyBrain только вводили в заблуждение. Я хотел узнать вот это:
var left:Boolean = false; var right:Boolean = false; var jump:Boolean = false; private function onKeyDown(e:KeyboardEvent):void { if (e.keyCode == 37) { left = true; } if (e.keyCode == 39) { right = true; } if (e.keyCode == 32) { jump = true; } } private function onKeyUp(e:KeyboardEvent):void { if (e.keyCode == 37) { left = false; } if (e.keyCode == 39) { right = false; } if (e.keyCode == 32) { chekJump = false; jump = false; } } private function onBallMove():void { if (left) { ball.vx = -4; } if (right) { ball.vx = 4; } if (jump) { ball.vy = -8; } } |
|
|||||
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,879
Записей в блоге: 7
|
Цитата:
|
Часовой пояс GMT +4, время: 19:25. |
|
« Предыдущая тема | Следующая тема » |
|
|