2016-04-14 8 views
0

私はフラッシュcs4でプラットフォームゲームに取り組んでおり、私はこのエラーに遭遇しました。それは、プレイヤーが敵を撃って、弾丸のクラスが敵のクラスと衝突するときに起こります。ここで私のコードは、エラーがenemyDead [i] = trueにあります。行フラッシュas3はブール値でプロパティ0を作成できませんか?

if(enemyList.length>0) { 
     for (var i:int = 0; i < enemyList.length; i++) { 
      if (bulletList.length>0) { 
       for (var j:int = 0; j < bulletList.length; j++) { 
        if (enemyList[i].hitTestObject(bulletList[j])) { 
         trace("Bullet and Enemy are colliding"); 
         enemyList[i].gotoAndPlay("dead"); 
         enemyDead[i] = true; 
         bulletList[j].removeSelf(); 
         enemyList[i].xSpeedConst=0; 
        } else if(enemyList.length>0){ 
         enemyDead = false; 
        } 
       } 
      } 
     } 
    } 
} 

もちろん、敵の舞台は問題を引き起こしていると思われるブール変数です。私は何時間もこの修正を行っていますが、xspeedConstプロパティを0に設定しても、敵が動いていることを除いて、どのように正しく動作しているのかは分かりません(箇条書きです)

+0

私は最初の真のenemyDead =を追加してみました。 [i]がなくてもひどくうまくいきましたが、どんな助けもありがたいです。 – Dan

+0

「敵のデッド」とは何ですか?配列またはブール値? – akmozo

+0

デバッガを使用して、エラーを投げる正確な行を指摘してください。 'enemyList [i] .enemyDead = true;'(あなたのenemyDeadフラグは敵オブジェクトのプロパティになるはずです)。または、別の配列であればelseはifでなければなりません: 'enemyDead [i] = false;'そうでなければ配列の代わりにブール値に設定します – BadFeelingAboutThis

答えて

2

問題の根は2つの異なる方法でvarを使用しようとしている可能性があります。あなたのヒットテストで

、あなたが実行します。

enemyDead[i] = true; 

これはenemyDead varが配列またはiに含まれる値に対応するプロパティを持つオブジェクトのいずれかであることを前提としています。

しかし、他のif文以降のHIST試験では、あなたがこれを行う:今のプリミティブなbooleanのようなenemyDead VARを扱っている

enemyDead = false; 

。そのvarがプリミティブブール値の場合、ブール値にはプロパティがないため、上記の(enemyDead[i] = true)はエラーになります。したがって、iが0の場合、設定するenemyDead.0プロパティはありません。

解決策は、enemyDead varが一貫して使用されていることを確認することです。ブール値だと言っていますが、enemyList配列内の個々のオブジェクトに結び付けられていれば意味があるようです。 (現在、あなたはただ一つのenemyDead varを持っていて、forループが終了したときに最後のアイテムの値を残すように、あなたの配列を通してすべての反復を上書きします)

敵クラスをisDeadプロパティが含まれています。そして、

//in your Enemy.as file: 
public var isDead:Boolean = false; 

あなたのヒットテストであることを設定:

enemyList[i].isDead = true; 
+0

はい、それは問題だと思われますが、どのように修正するのですか?私はenemyDead = falseを設定しようとしました。 var sにプロパティを設定しました。enemyDead [s] = false;それは事態を悪化させただけです。お手伝いをしていただきありがとうございます – Dan

+0

私は推奨されるソリューションを追加しました。 – BadFeelingAboutThis

+0

助けてくれてありがとう! – Dan

関連する問題