我需要使用 iPhone 的 cocos2d 将 Sprite 放置在屏幕底部,与分辨率无关,这样如果 Sprite 在 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];
我能做什么?
最佳答案
CGSize size = [[CCDirector sharedDirector]viewSize];
ground1 = [CCSprite spriteWithImageNamed:@"ground1.png"];
ground1.position = ccp(size.width/2,[ground1 boundingBox].size.height/2);
[self addChild:ground1];
首先您需要 View 的大小。在 Cocos2D 中,您可以调用 CCDirector 并获取其 viewSize 来获取该值。 之后,您就可以像以前一样创建 Sprite 。 现在重要的一步是定位 Sprite 。现在您的 viewSize 存储在“size”中,因此您可以通过执行以下操作获得 X 值:size.width/2。
现在你的 Sprite 以 X 为中心。现在让我们将它放置在 Y 上。 你希望你的 Sprite 位于底部。因此,您需要按照我在这张图中所示的方式计算点:
所以 Y 值恰好是 Sprite 大小的高度/2。我们可以通过调用返回 Sprite 大小的方法[spriteboundingBox]
来获取这个值。
总之,我们的 Sprite 以 X (size.width/2) 为中心,底部为 ([spriteboundingBox].size.height/2)
关于ios - 将 Sprite 放置在屏幕底部,与分辨率无关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23329293/