如何让对象顺时针旋转然后逆时针旋转 AS3



大家好 所以我想知道如何做到这一点?我现在花了一些时间在这上面,似乎想不通。我知道它缺少一些变量,但不知道从哪里开始。这就是我迄今为止在我的 mcSpear 课上所拥有的。

private function init():void 
    {
        addEventListener(Event.ENTER_FRAME, SpearLoop);
    }
    private function SpearLoop(e:Event):void 
    {
        this.rotation += 5;
        if (this.rotation >= 180)
        {
            trace("greater than 180");
            this.rotation -= 5;
        }

    }

这确实会顺时针旋转对象,然后当它到达 if 语句时,它只是开始抽搐并且永远不会改变方向。任何帮助将不胜感激!

当对象旋转 180° 时,您的代码将阻止您的对象处于同一位置。为什么?

因为每次object.rotation >= 180时,你都object.rotation -= 5所以它现在是 175°,下次你会用 object.rotation += 5 把它设置回 180°,所以你创建了一个无限循环。为了避免这种情况,您可以使用 Boolean var,例如,它可以指示旋转的感觉,如下所示:

var clockwise:Boolean = true;
addEventListener(Event.ENTER_FRAME, SpearLoop);
function SpearLoop(e:Event):void 
{
    if(this.rotation >= 180){ 
        clockwise = false;  // activate the counterclockwise sens 
    } else if(this.rotation <= 0){
        clockwise = true;   // activate the clockwise sens  
    }
    if (clockwise){
        this.rotation += 5;
    } else {
        this.rotation -= 5;
    }
}

希望能有所帮助。

最新更新