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

How to have Object Rotate clockwise then counter clockwise AS3

大家好所以我想知道这是如何实现的?我现在已经在这上面花了一些时间,但似乎无法弄清楚。我知道它缺少一些变量,但不知道从哪里开始。这是我目前在我的 mcSpear class 中所拥有的。

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;
    }

}

希望能帮到你。