やあ皆さん、基本的に私がやろうとしているのは、プレーヤーが配列内の 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);
}
}
トレースは何も取得しません。
必要に応じてポイントをステージに追加する方法は次のとおりです。
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 は、NESTED LOOP をどのように作成したかを示しています。
//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();
}
}