Actionscript 3 如何检查对象位置是否大于对象数组AS3
大家好,我想知道如何检查一部电影剪辑的x位置,叫做Actionscript 3 如何检查对象位置是否大于对象数组AS3,actionscript-3,for-loop,position,flashdevelop,Actionscript 3,For Loop,Position,Flashdevelop,大家好,我想知道如何检查一部电影剪辑的x位置,叫做球是否大于一组对象x位置,叫做车。所以我用汽车设置了一个数组汽车的主时间线由4个帧组成,每个帧上都有相同的电影剪辑,只是大小不同,使游戏更难进行 因此,我要做的是检查球何时跳过当前汽车,然后在分数上加1。但我很难找到答案。以下是我到目前为止的情况: 在我的输入帧游戏循环中,我有一个函数checkAddPoints: private function gameLoop(e:Event):void { checkBunnyH
球是否大于一组对象x位置,叫做车。所以我用汽车设置了一个数组
汽车的主时间线由4个帧组成,每个帧上都有相同的电影剪辑,只是大小不同,使游戏更难进行
因此,我要做的是检查球
何时跳过当前汽车
,然后在分数上加1。但我很难找到答案。以下是我到目前为止的情况:
在我的输入帧游戏循环中,我有一个函数checkAddPoints
:
private function gameLoop(e:Event):void
{
checkBunnyHitObstacles();
checkAddPoints();
}
然后函数:
private function checkAddPoints():void
{
for (var i:int = 0; i < aCarArray.length; i++)
{
var currentCar:car = aCarArray[i];
if (ball.x > currentCar.x)
{
nScore ++;
updateCurrentScore();
}
}
}
在车内存储有关奖励状态的标志将有助于完成任务。如果您向汽车添加标志,比如说car.isAwarded
,默认情况下isAwarded
为false
,您将只能为每辆汽车奖励一次:
private function checkAddPoints():void {
var i:uint, len:uint = aCarArray.length, currentCar:car;
for (i; i < len; ++i) {
currentCar = aCarArray[i];
//Award only once
if (!currentCar.isAwarded && ball.x > currentCar.x) {
nScore++;
currentCar.isAwarded = true;
updateCurrentScore();
}
}
}
private函数checkAddPoints():void{
变量i:uint,len:uint=aCarArray.length,currentCar:car;
对于(i;icurrentCar.x){
nScore++;
currentCar.isAwarded=真;
updateCurrentScore();
}
}
}
那么现场有几辆车?你想为每辆车奖励一名玩家,并且只奖励一次分数吗?是的,这些车会通过计时器添加到屏幕上,然后一旦离开屏幕就会被销毁。如果球越过汽车,则加一分。基本上,只要给每一辆车加一分,球就会跳过去而不会撞到车上。我已经创建了一个函数,用于检查汽车阵列的hittest是否正常工作。但是每次球从车上跳下来都要加一分,这有点难,所以我仍然会保留var currentCar:car=aCarArray[i];在函数中?谢谢,但我似乎在添加变量i:…currentCar:car的地方得到了这个错误。我得到这个:通过引用静态类型car来访问可能未定义的属性。当然,因为这是唯一的想法,您可以如何解决您的问题。这取决于你,将isAwarded属性添加到汽车
类中。哦,我不知道我必须将isAwarded添加到我的汽车类中,我以为我可以在主机类中完成所有操作。对于这一点,很多人还是新手。那么isAward布尔值必须在汽车类中,还是可以在主机类中?我很难弄明白这一点
private function checkAddPoints():void {
var i:uint, len:uint = aCarArray.length, currentCar:car;
for (i; i < len; ++i) {
currentCar = aCarArray[i];
//Award only once
if (!currentCar.isAwarded && ball.x > currentCar.x) {
nScore++;
currentCar.isAwarded = true;
updateCurrentScore();
}
}
}