0
从上面看,我的角色movieclip水平和垂直移动。 在开始位置,人物鼻子朝向屏幕的顶部,所以当按下左键时,它应该向左旋转90度,向左转动+继续向左移动。AS3我怎样才能停止从循环旋转?
因为我使用了运动功能+旋转功能,它现在可以循环90度旋转并向左旋转四周。 我明白为什么会发生这种情况,但我的问题是,
我怎样才能让它旋转角度只有一次,并继续面向那个方向的运动?
var leftArrow:Boolean;
var speed:Number = 4;
var charRadius:Number = 10;
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyPressed);
stage.addEventListener(KeyboardEvent.KEY_UP, keyReleased);
stage.addEventListener(Event.ENTER_FRAME, everyFrame);
function keyPressed(event:KeyboardEvent):void {
if (event.keyCode == Keyboard.LEFT) {
leftArrow = true;
}
}
function keyReleased(event:KeyboardEvent):void {
if (event.keyCode == Keyboard.LEFT) {
leftArrow = false;
}
}
function everyFrame(event:Event):void {
var mazehit:Boolean = false;
if (leftArrow) {
for(var i:int = 0; i < speed; i++) {
if(bounds.hitTestPoint(char.x - charRadius - i, char.y, true)) {
mazehit = true;
break;
}
}
if(!mazehit) {
char.x -= speed;
char.rotation -= 90;
}
谢谢你这个答案,但是注册点居中,当我按左/右/左的movieclip不住在同一个.x,任何想法我做错了什么? – Opoe
这可能与我在'keyReleased'方法中发生的错误有关 - 对于这两种情况我都有'leftArrow = false'。我已经纠正它,它现在应该工作。 –
我认为它与旋转有关,你的代码是exaclty我要求的,我只需要movieclip来面对箭头键的方向,我开始认为旋转可能不是正确的方式。谢谢你的时间 – Opoe