public function goalieLoop(e:Event):void
{
if (goalie!=null)
{
if (direction=="right")
{
goalie.x+=5;
}
else
{
goalie.x-=5;
}
if (goalie.x==500 && direction=="right")
{
direction="left";
}
else if (goalie.x==300 && direction=="left")
{
direction="right";
}
}
}
这就是我让我的敌人从左向右移动的方式,但是一旦我进入下一个级别,根据他的行进方式,他会继续朝着屏幕方向移动。
答案 0 :(得分:2)
在更改场景之前,请移除触发goalieLoop的事件侦听器并重置方向变量。
答案 1 :(得分:2)
我相信你的问题与你的边界条件有关。最好使用.iloc[::-1]
和<=
代替>=
。此外,当您检查切换方向时,我认为您不关心当前的方向。无论代码是认为它是向左还是向右并且x超过500,那么你应该向左走。
==