0

私はポンのようなゲームをしてきました。しかし、ボールがステージ上にあるいくつかの文字に当たると、いくつかの文字が消えます. 私の手紙はムービークリップで、基本的に次のような if ステートメントを実行しています。

if(mcBall.hitTestObject(mc2)){      
    removeChild(mc2);
    mc2 = null;
}

私が知りたいのは、すべての文字が消えたときにゲームを終了するようにプログラムに指示する最良の方法です。次のように null プロパティを使用することを考えました: if (mc1 && mc2 && mc3 = null){ gotoscene x } それは可能ですか? null オブジェクトを使用して、プログラムに別のシーンに移動するように指示しますか?

4

2 に答える 2

0

コンテナから削除する子が使用できる唯一の子であると仮定すると、唯一の子if (numChildren == 0){gotoscene x}がない場合は、それらを追加して比較する前にその変数のサンプルを取得します。if (numChildren == numChildrenPreInt){//}

もう 1 つの方法は、コリジョン オブジェクトを ArrayCollection に格納し、次のように実装することです。

private var collisionObjs:ArrayCollection = new ArrayCollection();

private function init():void{
collisionObjs.addItem(nc1); //do this for all your objects.
}

private function isComplete():Boolean
{
return (collisionObjs.length == 0);
}

private function detectCollision():void
{
if(mcBall.hitTestObject(mc2)){      
removeChild(mc2);
collisionObjs.removeItemAt(collisionObjs.getItemIndex(mc2));
if (isComplete())
{
//goto complete
}
}
于 2013-10-17T11:06:06.510 に答える
0

オブジェクトの配列 (レンガ、文字など) を使用する必要があります。オブジェクトがヒットしたら、画面と配列から削除し、配列が空になったら、好きな場所に移動します。

var letters:Array=new Array();
letters.push(mc1); 
// stuff all of your removable objects in a level in here
letters.push(mcN);

次に、それらのそれぞれを繰り返しチェックします。それらがボールと衝突する場合は、次のようにします。

for (var i:int=letters.length-1;i>=0;i--) {
    var tmc=letters[i]; 
    if (mcBall.hitTestObject(tmc)) {
       tmc.parent.removeChild(tmc);
       letters.splice(i,1);
       if (letters.length==0) { 
           // goto complete code (call a method, that makes the game go "you win")
       }
    } else {
       // do anything with tmc if you want. If not, omit this
    } 
}
于 2013-10-18T07:03:29.613 に答える