嘿伙计们,基本上我要做的是当我的播放器与数组中的所有 5 个点 MovieClips 和目标电影剪辑发生碰撞时,我希望出现一个文本说“完美。但我不能完全做到这一点。我设置启动函数,它似乎会,但我认为可能有问题的是 hitTest 与数组中的所有电影剪辑。
这是我的设置方式:
这是我的循环功能:
private function gameLoop(e:Event):void
{
perfectTextFunction();
}
这是功能:
private function perfectTextFunction():void
{
if (player.hitTestObject(mcGoal_1 && points))
{
trace("perfect Text");
mcPerfect = new perfectText();
mcPerfect.x = (stage.stageWidth / 2);
mcPerfect.y = (stage.stageHeight/ 2);
stage.addChild(mcPerfect);
}
}
Trace 什么也没找到。
如果需要,以下是如何将点添加到舞台的方法:
public function addPointsToStage():void
{
for (var i = 0; i < nPoints; i++)
{
trace(aPointsArray.length);
points = new mcGainPoints();
stage.addChild(points);
points.x = startPoint.x + (xSpacing * i);
points.y = startPoint.y - (ySpacing * i);
aPointsArray.push(points);
}
}
请任何帮助将不胜感激!谢谢你!
VESPER 这是我制作嵌套循环的方式:
//If all points are hit then Perfect Hit Text
if (player.hitTestObject(mcGoal_1 || mcGoal_2))
{
var weHitAll:Boolean = true;
for (var s in aPointsArray)
{
weHitAll = weHitAll && player.hitTestObject(aPointsArray[s]);
if (!weHitAll)
break;
}
if (weHitAll)
{
trace("perfect Hit");
mcPerfect = new perfectText();
mcPerfect.x = (stage.stageWidth / 2);
mcPerfect.y = (stage.stageHeight/ 2) - 80;
stage.addChild(mcPerfect);
nScore += 25;
updateHighScore();
}
}