したがって、これが問題のコードです。
function moveObsticle():void
{
//move
var tempObs:MovieClip;
for(var i:int = obsticles.length-1; i>=0; i--)
{
tempObs = obsticles[i];
tempObs.y = tempObs.y - playerSpeed;
}
//test if obsticle is off-stage and set it to remove
if (tempObs != null && tempObs.y < stage.stageHeight)
{
removeObsticle(i);
}
//player-obsticle colision
if (tempObs != null && tempObs.hitTestObject(player))
{
gameState = STATE_END;
}
}
これは私のコードの moveX 関数の 1 つで、すべて同じ問題があります。したがって、この関数はプログラム (ゲーム) の開始時に完全に機能しますが、ゲームを 30 秒または 1 分間プレイした後、hitTestObject() が機能しなくなり、ゲームのすべてのゲームプレイ要素が失われます。
したがって、問題のコードは関数の最後の if ステートメントですが、mby a for ループも問題になるのではないかと疑っていますが、hitTest の if ステートメント (obs がオフステージかどうかをテストします...) は問題を解決します。うまく動作します。
このエラーは私を夢中にさせます。私はそのエラーでゲーム全体を開発しましたが、今はそれを取り除く時です。同じ問題を抱えている人を見つけることができず、以前にその問題が発生したことはありません.
コードは AIR for Android で実行され、全体は Adobe Flash Pro cs6 で開発されます。