0

わかりました、Enemy というメイン クラスがあり、その中にさまざまな敵 (ZombieEnemy) のサブクラスがあります。Enemy のすべてのスプライト/サブクラスをターゲットにする方法が必要です。つまり、衝突検出のために、レベルを終了するためにすべての敵が「死んだ」かどうかを確認する方法が必要です。

ありがとう

4

1 に答える 1

1

これを行う方法はたくさんあります。-(BOOL)isEnemy1 つは、単純に YES を返すようなメソッドを Enemy クラスに追加することです。(Enemy に、GameObject のようにカスタマイズできるスーパークラスがある場合は、実際により便利です。そのクラスに -isEnemy を実装して、NO を返します。そうしないと、特定のオブジェクトで -isEnemy を呼び出すことができるかどうかわかりません。)サブクラスはこのメソッドを自動的に継承します。または、 を使用して各オブジェクトのクラスをテストすることもできます-isKindOfClass:。または、敵を作成するのはあなたなので、すべてのアクティブな敵のリストを確実に保持できます。これは、画面上に多数のオブジェクトがあり、その一部だけが敵オブジェクトである場合に最適なプランです。

すべての敵がいつ死ぬかを決定することは、おそらく非常に頻繁に行いたいことです。生きている敵のリストを保持することは理にかなっているかもしれません。敵が死亡すると、リストから削除します。生きている敵リストの長さを確認することで、プレイヤーがレベルを正常にクリアしたかどうかをすばやくテストできます。0 より大きい場合は、さらに作業が必要です。

于 2011-03-23T19:58:19.407 に答える