如何让对象顺时针旋转然后逆时针旋转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;
}
}
希望能帮到你。
大家好所以我想知道这是如何实现的?我现在已经在这上面花了一些时间,但似乎无法弄清楚。我知道它缺少一些变量,但不知道从哪里开始。这是我目前在我的 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;
}
}
希望能帮到你。