![]() |
|
||||||||||
|
|||||
|
Регистрация: Apr 2013
Сообщений: 77
|
Ну суть бага в том, что у Вас в приемнике Фрэйма стоит порядок движения, т.е если у Вас нажата кнопочка, которая раньше зарегистрирована, то это движение из двух, трех, четырех он выберет.
Т.е. Если нажата Вверх и вниз - пойдет вверх, влево и вниз - пойдет влево. Т.е приоритеты : 1. up 2. left 3. down 4. right Приоритет определяет направление, чем ниже он - туда и будет двигаться. А почему происходит поворот? Потому что рассылка события заходит в приемник keyPressedListener и делает поворот. Исправить этот баг - просто, просто нужно обнулять переменные ненужных нам направлений в приемнике: private function keyPressedListener(e:KeyboardEvent){ var key:uint=e.keyCode; if(key==87||key==38){//W or UP key this.gotoAndPlay("goUp"); moveUp = true; moveRight=false; moveDown = false; moveLeft=false; }else if(key==65||key==37){//A or LEFT key this.gotoAndPlay("goLeft"); moveLeft = true; moveUp = false; moveRight=false; moveDown=false; }else if(key==83||key==40){//S or DOWN key this.gotoAndPlay("goDown"); moveDown = true; moveUp = false; moveRight=false; moveLeft=false; return; }else if(key==68||key==39){//D or RIGHT this.gotoAndPlay("goRight"); moveRight = true; moveUp = false; moveDown=false; moveLeft=false; } } 1. Нажата ли кнопочка? 2. Если нажата, то проверять приоритет. ![]() |
![]() |
Часовой пояс GMT +4, время: 10:23. |
|
|
« Предыдущая тема | Следующая тема » |
|
|