Допустим у меня есть объект, который я могу передвигать по оси Х и Y. Эти передвижения я осуществляю с помощью оператора IF (e.KeyKode == ..). Как мне сделать, чтобы при нажатие клавиш верх и в лево, объект передвигался по Х и Y. P.s я начинающий программист Добавлено (06.08.2014, 15:22) ---------------------------------------------
Добавлено (07.08.2014, 15:40) --------------------------------------------- Тему можно закрыть.
Код
import flash.events.KeyboardEvent; import flash.events.Event; var step = 2; //скорость перемещения var rotDirSpeed = 3; //скорость поворота var heroUP:Boolean = false; var heroRIGHT:Boolean = false; var heroLEFT :Boolean= false; var heroDOWN :Boolean= false; trace (heroDOWN); stage.addEventListener(KeyboardEvent.KEY_UP, kup); stage.addEventListener(KeyboardEvent.KEY_DOWN, kdown); addEventListener(Event.ENTER_FRAME, drag); function kdown(e:KeyboardEvent) { if (e.keyCode==65) { heroUP = true; } else if (e.keyCode==68) { heroDOWN = true; } else if (e.keyCode==87) { heroLEFT = true; } else if (e.keyCode==83) { heroRIGHT = true; } } function kup (e:KeyboardEvent) { if (e.keyCode==65) { heroUP = false; } else if (e.keyCode==68) { heroDOWN = false; } else if (e.keyCode==87) { heroLEFT = false; } else if (e.keyCode==83) { heroRIGHT = false; } } function drag (e:Event) :void { trace (heroUP); if (heroUP ) { hero.rotation -= rotDirSpeed; } else if (heroDOWN) { hero.rotation += rotDirSpeed; } var dirAngle = hero.rotation / 180 * Math.PI; if (heroLEFT) { hero.foot.play(); //запускаем анимацию колёс hero.x += step * Math.cos(dirAngle); //проекция скорости на ось x hero.y += step * Math.sin(dirAngle); //проекция скорости на ось y } else if (heroRIGHT) { heroRIGHT = true; hero.foot.play(); hero.x -= step * Math.cos(dirAngle); //идём hero.y -= step * Math.sin(dirAngle); //назад } }