ios - 将 Sprite 放置在屏幕底部,与分辨率无关

标签 ios iphone cocos2d-iphone

我需要使用 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 位于底部。因此,您需要按照我在这张图中所示的方式计算点:

enter image description here

所以 Y 值恰好是 Sprite 大小的高度/2。我们可以通过调用返回 Sprite 大小的方法[spriteboundingBox]来获取这个值。

总之,我们的 Sprite 以 X (size.width/2) 为中心,底部为 ([spriteboundingBox].size.height/2)

关于ios - 将 Sprite 放置在屏幕底部,与分辨率无关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23329293/

相关文章:

ios - 将图像与动画/效果一起拖/放到某个位置

ios - 另一个 "could not dequeue a view of kind: UICollectionElementKindCell with identifier song"

objective-c - 在点和手指之间画一条恒定的线

iphone - 当应用程序在 ipad 中运行 10 分钟时,错误 = 24

iphone - 定位 UIScrollView

objective-c - 如何通过渐变的 alpha 屏蔽 cocos2d 中的 Sprite ?

ios - 变量初始化错误

iphone - iPhone 中的 Twitter+linkedin 问题?

iphone - Cocos2d 与 UIKit

ios - 我如何处理他内部的 CCScene 和 CCButton 的触摸