2012-01-20 12 views
0

Cocos2Dでは、マップ座標ではなく画面座標にスプライトを配置したいと思います。私はconvertToNodeSpaceを使用して得ることができると思ったが、それは私がしたいことをしていないようだ。スプライトを画面上のポイントに関連させて配置します。マップ上ではありません

私はこれが私のiPadの画面の中央にスプライトを配置する必要が考えた:

selectionScreenOverlaySprite.position = [self convertToNodeSpace:CGPointMake(512, 384)];

しかし、それはしていません。また、マップのサイズに応じて別の場所に配置します。誰が私は何を使用すべきか知っていますか?私はまた試みました:convertToWorldSpace、convertToNodeSpaceAR、およびconvertToWorldSpaceAR。

答えて

1

これを試してみてください:

CGSize wins = [[CCDirector sharedDirector] winSize]; 
[yourSprite setPosition:CGPointMake(wins.width/2, wins.height/2)]; 

それは関係なく、解像度の動作しますので、これはハードコーディングされた値を使用するよりも優れています。

+0

ありがとうございました。それは知っておくと便利ですが、マップのサイズによってはまだ別の位置に配置されています。また、マップが配置されているときに地図の反対側が表示されている可能性があります。 – VagueExplanation

+0

あなたが話しているこのマップは何ですか?それはスプライトが追加されるレイヤーですか?そうであれば、その位置に影響を与えます。画面と同じ境界を持つレイヤーに追加します。 –

+0

さて、私は理解していますが、それは他のすべてとの関係でスプライトの順序を変えることにもなりますよね?これは、マップをレンダリングするCCLayerであるselfに追加されています。 – VagueExplanation

関連する問題