1

この投稿では、CCSprite をサブクラス化するか、CCSprite をメンバーとして持つことの長所と短所について説明します。

メンバーとして CCSprite を持つ CCNode があるとします。
次に、レイヤーに CCNode を子として追加し、CCSprite を CCNode に追加します。

CCSprite の位置を変更したいのですが、CCSprite または CCSprite 自体を含む CCNode の位置を変更する必要がありますか?

CCSprite の位置を変更すると、CCNode の位置はどうなりますか?

  • 編集
    これは許容される慣行と見なされますか?
    CCNode の位置を設定して、CCNode がある場所に CCSprite を配置する方がよいでしょうか?
4

5 に答える 5

2

CCNode の子として CCSprite を追加すると、複数のスプライトをノードとともに移動する場合に役立ちます。

プレイヤー スプライトの例を考えてみましょう。プレーヤーの下に影を置きたいとします。シャドウ スプライトとプレーヤー スプライトの両方を親 CCNode に追加すると、両方を簡単に移動できます。

一緒に移動する他のスプライトを持たない 1 つのスプライトがある場合、CCNode 親は必要ありません。

于 2012-10-16T08:49:14.520 に答える
0

スプライトには何も起こりません。コンテンツサイズとアンカーポイントをスプライトのコンテナに設定しない場合、ノードの位置は常にノードの位置(0.f、0.f)と等しくなります。したがって、スプライトの位置はその親(0.f、0.f)に関連します。

于 2012-10-15T08:56:32.057 に答える
0

基本的に、cocos2d-xのすべてのノードには親ノードがあります(シーンを除く)。

親ノードの位置を変更すると、そのすべての子に位置の変更が適用されます。

子ノードの位置を変更しても、この子ノードに独自の子がない限り、何の影響もありません。

この例では、CCSpriteの位置を変更しても、CCNodeの位置は同じままです。ただし、CCNodeの位置を変更した場合、同じ変更(画面上でのシフト)がスプライトで発生します。

于 2012-10-15T09:00:10.500 に答える
0

CCSprite の位置もその親の影響を受けるため、CCNode の位置を移動することをお勧めします。CCSprite の位置を移動しても視覚的には同じ結果が得られますが (その親は移動しません)、スプライトの位置を取得するのがより複雑でわかりにくくなります。

于 2012-10-24T07:47:17.643 に答える
0

スプライトの位置を設定したい。単純な理由は、ノードには、スプライトから独立して移動できる必要がある他の子ノードが含まれている可能性があるためです。

ノードの位置を変更しても、親の位置にはまったく影響しません。同様に、親の位置を変更しても、子ノードの位置はまったく変更されません。子ノードの位置は親の位置に対するオフセットであるため、親を移動すると、それらは追従しますが、位置プロパティ (親の位置に相対的) は同じままです。

于 2012-10-16T12:55:15.273 に答える