すでにユーザースプライトを把握している場合は、別のレイヤーで呼び出されてレイヤーツリーに追加されるaddSublayer:が発生している可能性があります。基本的には、障害物を追加するには、 - [CALayer layer]で新しいレイヤーをインスタンス化し、それを設定し、[rootLayer addSublayer:obstacle]を追加する必要があります。
別々のファイルについての質問はこちらです:独自のヘッダーと実装で新しいクラスを作成するとよいでしょう。しかし、Obstacleがどのように動作するかを定義するための1つのクラス(1つの.h/.mペアを意味する)を行い、 - [[Obstacle alloc] init]呼び出しを発行することにより、
「障害物」はどのようにインポートされて表示されますか? CALayer型のObstacleの@interface {}に変数を置く可能性が最も高いでしょう。 GameBoard(または非常に単純なプロトタイプ/アプリケーション用のViewController)には、障害物を取り、レイヤーを要求してrootLayerに追加するメソッド-addObstacle:があります。
徹底的に試してみると、私はあなたの質問のジストを見逃していたかもしれません。「私は障害クラスを持っているべきか、それとも障害物アレイはCALayersで満たされていますか?あなたは確かにゲームの説明を与えられたようにそれを行うことができます。しかし、個々のObstacleインスタンスに関する情報を保持し始めるとすぐに、オブジェクト自体がその情報に関する質問に答える方がよいでしょう。 CALayerはMVCのView領域にしっかりとしていますが、多くの場合、必要なすべてのモデル情報(x、y、境界、色、コンテンツ)が含まれているため、単純にレイヤー配列を持つプロトタイプ/テストアプリケーションを作成しました。私は本当のアプリに変わりましたが、メンテナンス性のために大きな部分を書き直さなければなりませんでした。
Cocos2Dを見ましたか?大名ゲームの多くで使用されている偉大な2Dオープンソースのゲームエンジンです。これは本当に多くのことを単純化します。 – Dancreek
@Dancreek私はCocos2Dを見てきましたが、それは私には印象的ではありません。私はサードパーティのソフトウェアを使用したくない。 –
まあ、私はあなたの最終製品が何であるか正確にはわかりませんが、あまりにも速くそれを書き留めてはいません。レビューを読むあなたがする必要がない場合は、ホイールを再発明しないでください。 – Dancreek