2009-05-17 23 views
1

cocos2dでは誰でもスプライトの中心を知ることができますか?今、私はあなたが画面上で触れる場所に移動するスプライトを持っています。問題は、スプライトが左下隅に揃えられていることです。これは、下に移動するのではなく、ちょっと下に触れるとスプライトが上に移動することを意味します。前もって感謝します!ここでスプライトの中央揃え方は?

は私のコードです... Cocos2Dでスプライトのため

(BOOL) ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *) event { 
    UITouch *touch = [touches anyObject]; 
    CGPoint point = [touch locationInView: [touch view]]; 

    [mainSprite do:[MoveTo actionWithDuration:0.5 position:ccp(point.x, 480 - point.y)]]; 

    return YES; 
} 

答えて

1

デフォルトの変換アンカーは、スプライトの中心であるため、スプライトの中心をタッチで終わるように移動する必要がありますあなたが今持っているように場所。スプライトの変形アンカーを変更しましたか?上

- (CGPoint)convertToNodeSpace:(CGPoint)worldPoint; 

...:

私は考えることができる唯一の他の事はあなたのmainSpriteは別CocosNodeの子であるならば、あなたはタッチがこのメソッドを使用してノード空間に座標変換する必要があるかもしれないということです親ノードしかし、私はそれが問題だとは思わない。これは役に立たない場合は申し訳ありません。

EDIT:OP、これを読んだら、どのバージョンのCocos2Dを使用していますか?私は0.8(現在のsvnトランクにある)がアンカーが動作する方法を変更すると信じています。将来の参照のために、他の人があなたが何をしているのかを知ることは有用かもしれません。

0

私はそれを動作させました!コードはここに知りたい人のため...

[mainSprite setTransformAnchor:ccp(24.0, 64.5)]; 

24は、スプライトの半分である

64.5は、スプライトの高さ

の半分である幅
関連する問題