2012-02-19 20 views
0

と一致しません。それはスーパーinitのように、それは周りのものを固定する独自の方法だと思われる。ここに例があります。 以下私はスプライトフレーム "image1"を持つスーパーinitを持っていて、私はinit内に "image2"を持っています。問題は、これらの2つのイメージは、あなたが思ったように互いにオーバーラップしないことです。init 'image1'のアンカーポイントは「image2」では0,0と0.5,0.5であるように見えるので、「image1」の左下のエッジ"" image2 "の中心でオーバーラップします。スーパーinitスプライトは位置

-(id) initWithSpriteImage 
{ 
    if ((self = [super initWithSpriteFrameName:@"image1.png"])) 
    { 

     CCSprite *image2=[CCSprite spriteWithSpriteFrameName:@"image2.png"]; 
    } 
    return self; 

} 

私は初期化スプライトを削除するの横にこの問題を解決することができますどのように任意のアイデア?

+0

私はあなたが達成しようとしていることを理解していません... – EmilioPelaez

+0

2番目のCCSpriteを使用しない場合、それを作成する目的は何ですか? – dreamlax

+0

どのノードにそれぞれ子として追加していますか? – richard

答えて

2

image2がimage1スプライトの子であると仮定すると、表示される動作は正しいです。私は初心者のための行動を理解するのは本当に面倒で難しいので、それが違ってほしいです。

子ノードが親のanchorPointの中央に配置されず、親のテクスチャの原点(0,0)に配置されているとします。したがって、親がCCScene、CCLayerまたはCCNodeのような非視覚的なノードでない限り、各子は親の左下隅に中央揃えされます。

+0

あなたの答えをありがとう。だから私はこれを修正する方法はないと仮定?また、私はマウスジョイントに関してcocos2d-centralに質問を投稿しました。あなたがそれを見ることができればそれは素晴らしいことです。 http://cocos2d-central.com/topic/772-get-body-with-b2mousejoint/良い一日を! – Bek