Objective c 相对于屏幕上的点而不是地图上的点放置精灵

Objective c 相对于屏幕上的点而不是地图上的点放置精灵,objective-c,cocos2d-iphone,screen,sprite,placement,Objective C,Cocos2d Iphone,Screen,Sprite,Placement,在Cocos2D中,我希望将精灵放置在屏幕坐标上,而不是地图坐标上。我原以为我可以通过使用convertToNodeSpace获得,但它似乎没有达到我想要的效果 我认为这应该在iPad屏幕中间放置一个精灵: selectionScreenOverlaySprite.position=[self-convertToNodeSpace:CGPointMake(512,384)] 但事实并非如此。它还会根据我的地图大小将其放置在不同的位置。有人知道我应该用什么吗?我也尝试过:convertToWorl

在Cocos2D中,我希望将精灵放置在屏幕坐标上,而不是地图坐标上。我原以为我可以通过使用convertToNodeSpace获得,但它似乎没有达到我想要的效果

我认为这应该在iPad屏幕中间放置一个精灵:

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

但事实并非如此。它还会根据我的地图大小将其放置在不同的位置。有人知道我应该用什么吗?我也尝试过:convertToWorldSpace、convertToNodeSpaceAR和convertToWorldSpace

试试这个:

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

这比使用硬编码值要好,因为无论分辨率如何,它都能工作。

谢谢。知道这一点很有帮助,但它仍然会根据地图的大小将其放置在不同的位置。另外,我可能会在地图放置时看到地图的另一面,这可能会增加这个问题。你说的这张地图是什么?它是添加精灵的图层吗?如果是这样,这将影响其地位。将其添加到与屏幕具有相同边界的层中。好吧,我理解,但这也将强制精灵相对于其他所有对象的顺序不同,对吗?正在将其添加到渲染地图的CCLayer中。将精灵添加到图层时,可以使用
z:
参数指定其顺序
[self addChild:someSprite z:0]
我知道z顺序,但是如果我将其添加到另一层,我仍然可以指定一个z顺序,使其显示在更高的层前面吗?