Actionscript 3 AS3-如何使用Event.EnterFrame?
所以,我最近问了一个关于我的一款游戏的问题,我认为其中一个答案是有潜力的,但我不知道如何使用它。代码如下:Actionscript 3 AS3-如何使用Event.EnterFrame?,actionscript-3,Actionscript 3,所以,我最近问了一个关于我的一款游戏的问题,我认为其中一个答案是有潜力的,但我不知道如何使用它。代码如下: 如果我改变窗户的尺寸,岩石似乎就一直在窗外移动。有什么方法可以解决这个问题并使其返回到起始块?不确定这是否是您唯一的问题,但循环中的850-=15将永远不会==0。您可以尝试将代码更改为 if (rock.x < 0) {} if(rock.x
如果我改变窗户的尺寸,岩石似乎就一直在窗外移动。有什么方法可以解决这个问题并使其返回到起始块?不确定这是否是您唯一的问题,但循环中的850-=15将永远不会==0。您可以尝试将代码更改为
if (rock.x < 0) {}
if(rock.x<0){
好的,我已经回答了你前面的问题,我也会回答这个问题,因为建议仍然是半相似的。虽然我的回答不仅提供了实现,而且适合您当前的设置,但如果您打算使用enter frame,则考虑到事件帧的大量递减,您的速度
变量存在一些固有问题。请注意,如果这些答案缓解了您的问题,请将其标记为正确,以便其他用户可以从中受益
如果要更改窗口大小,请记住要不断设置:
rock.x = 850;
在函数moveRock(e:Event)
中,如果窗口大小明显小于850像素,则在该窗口大小之外设置“rock”对象一次rock.x=0
。正如@Andrew Sellenrick所述,moveRock函数if语句:
if (rock.x == 0)
也可能会导致一个问题,因为你翻译的是-15,这可能是你的岩石将永远有一个x值为0。因此,将if语句更改为:
if (rock.x <= 0)
没有理由在那里添加和删除事件侦听器。您能将我们链接到游戏本身吗?
function moveRock(event:Event):void {
rock.x -= speed;
if (rock.x <= 0) {
rock.x = 850;
rock.y = 520;
}
}