0

いくつかのスプライトを含むオブジェクトを作成する必要があります (簡単にするために 2 つ: ゲーム オブジェクトとその影)。それらを同じクラスに構成する必要があるため、次の質問があります。

  1. 説明されているものに最適な祖先クラスは何ですか? CCNodeこの目的で使用しました。draw次の方法でメソッドをオーバーライドしました。

    - (void)draw {
        [super draw];
        [_item draw];
        [_itemShadow draw];
    }
    

そして突然、他のすべての CCNode メソッドを同じ方法で変更する必要があることがわかりました。たとえば。position、などを変更visibleして、両方のスプライトでこれらのプロパティを変更するには、カスタム コンテナの集計を行います。

@interface NBChecker : CCNode {
    CCSprite *_item;
    CCSprite *_itemShadow;
}

@end

私が見る別の方法があります-両方のスプライトparentのプロパティをself. これにより、これらのスプライトの位置、可視性などが同期されます。

誰がより良いアイデアを持っていますか? 集計を使用したいのですが、自分の考えが正しいかどうかわかりません。

ありがとう!

4

1 に答える 1

1

ドローコードを破棄します。2 つのスプライトを CCNode サブクラスの子として追加するだけです。ロジック コードを CCNode サブクラスに記述し、スプライトごとに 2 つの ivar を用意して、簡単にアクセスできるようにします (既にお持ちのように)。

スプライトがシーン グラフの一部である限り、自分でスプライトを描画する必要はありません。

スプライトは、親に対して自動的に移動および回転します。ノードを動かしてスプライトを一斉に動かすなど。

于 2014-03-17T08:20:12.280 に答える