0

基本的な Xcode テンプレート プロジェクトを使用しています。HelloWorldLayer では、正方形の CCSprite を位置 CGPointZero の子ノードとして追加しています。また、位置 CGPointZero を持つ CCLayerColor サブクラスを子ノードとして追加しています。描画されると、スプライトの中心点が画面の左下隅に揃えられます。ただし、レイヤーの左下隅は画面の左下隅に揃えられています。

スプライトとレイヤーの配置が異なるのはなぜですか? 両方の位置が (0,0) に設定されているため、両方の中心点が画面の左下隅に揃えられると思います。

iPhoneシミュレーター表示

編集 - 詳細: スクリーンショットが判読しにくい場合は申し訳ありません。スプライトは icon-small-50.png を使用しています。レイヤーのコンテンツ サイズは (100,100) に設定されています。注: レイヤーの位置を (10,10) に設定して、左下隅が実際に画面の左下隅に揃えられるようにしました (位置が (0,0) の場合)。

編集 - 詳細情報: CCNode.h でこれに気付きました:

// If YES, the Anchor Point will be (0,0) when you position the CCNode.
// Used by CCLayer and CCScene
BOOL ignoreAnchorPointForPosition_;

それがそれを説明していると思います。

4

1 に答える 1

1

CCSprite には、スプライトの中心である (0.5,0.5) のデフォルトの anchorPoint があります。通常は画面であるレイヤーとは対照的に、スプライトは動き回る小さなオブジェクトになる傾向があるため、このように行われます。

通常、スプライトの中心に基づいて回転する必要があるため、登録点を中心に置くと、スプライトを回転するときに有利です。

通常、CCLayer を回転させるのは一般的ではありません。これは通常、移動するものではなく、背景画像など、スプライトを通常追加するものであるためです。

于 2013-01-10T05:23:30.083 に答える