私は現在iPhone上でcocos2dとbox2dを使ってゲームを開発中です。
私はゲームコードの編成、ゲームオブジェクトの構造などについて多くの記事を読んでいます。 私は最初にCCSpriteを継承する基本クラスから継承して自分のゲームオブジェクトの開発を始めました。 CCSpriteBatchNodeを使用して、プレイヤーが対話できるすべてのゲームアイテムを1回のドローコールで描画しました。私のItemクラスはCCSpriteから間接的に継承されているので、簡単にできました。そのため、アイテムをCCSpriteBatchNodeに簡単に追加することができました。そして、その上に私はオブジェクトを保持するためにcocos2dに依存することができます。コンポジションとCCSpriteBatchNodeのゲームオブジェクト
私は記事を読んだ後、継承スタイルではなく、よりコンポジション指向のスタイルで自分のコードをリファクタリングする必要性を理解しました。 だから私は、私が今直面してる問題は、私が直接CCSpriteBatchNodeに私のゲームオブジェクトを追加することができないということであるなど、NSObjectのから継承されたと、1つまたは複数のCCSpriteのような特性を持つゲームオブジェクトの基底クラスで
を1 b2Bodyを行ってきましたもう私はまず、GameObjectのスプライトプロパティをCCSpriteBatchNodeに追加することで、問題を簡単に修正できると考えました。それは大丈夫ですが、誰がCCSpriteを所有するオブジェクトを保持していますか? CCSprite(userData/Object ok)から元のオブジェクトに簡単にアクセスするにはどうすればよいですか?
アイテムを保持する配列を作成する必要がありますか? このようなゲームオブジェクト構造でCCSpriteBatchNodeをどのように使用するのか知りたいですか?
未回答の件についてすでにthreadがあります。その件について本当にお聞きしたいと思います。ストレートな答えではなく、さらに進んでいく要素。
ありがとうございました。
あなたの答えをありがとう。あなたが言っていることを理解している場合、ゲームオブジェクトを追加するには2つのステップがあります:ゲームオブジェクトをシーンのノードとして追加し(ビジュアル表現なし)、ゲームオブジェクトを表示する必要がある視覚表現を追加しますバッチノードまたは単にレイヤー)。 – florian
そしてスプライトバッチノードのCCSpriteにアクセスしたかったのは、x軸に沿って移動させる(または、本体を「接続」する)ためです。多分、これは私がそれをやるべき方法ではありません... – florian