将精灵放在屏幕底部,与分辨率无关

时间:2014-04-27 21:34:40

标签: ios iphone cocos2d-iphone

我需要在屏幕底部放置一个精灵,独立于使用cocos2d for iPhone的分辨率,这样如果精灵位于iPhone 5 / 5s的底部,即使在iPhone 4 / 4s上它也会在底部

以下代码适用于iPhone5 / 5s分辨率,但不适用于之前的iPhone型号:

ground1 = [CCSprite spriteWithImageNamed:@"ground1.png"];
ground1.position  = ccp(self.contentSize.width/2,self.contentSize.height/2-259);
[self addChild:ground1];

我该怎么办?

1 个答案:

答案 0 :(得分:2)

CGSize size = [[CCDirector sharedDirector]viewSize];
ground1 = [CCSprite spriteWithImageNamed:@"ground1.png"];
ground1.position  = ccp(size.width/2,[ground1 boundingBox].size.height/2);
[self addChild:ground1];

首先,您需要视图的大小。在Cocos2D中,您可以调用CCDirector获取该值并获取其viewSize。 之后,就像你一样创建精灵。 现在重要的一步是定位精灵。现在,您将viewSize存储在“size”中,以便通过执行以下操作获取X值:size.width / 2。

现在你的精灵以X为中心。现在让我们将它放在Y上。 你希望你的精灵位于底部。因此,您需要按照我在此图片中显示的那样计算点数:

enter image description here

所以Y值恰好是精灵大小的高度/ 2。我们可以通过调用返回精灵大小的方法[sprite boundingBox]来获取此值。

总之,我们的精灵集中在X(size.width / 2)和底部([sprite boundingBox] .size.height / 2)