独立于分辨率将精灵放置在屏幕底部
Posted
技术标签:
【中文标题】独立于分辨率将精灵放置在屏幕底部【英文标题】:Place a sprite at the bottom of the screen independently from resolution 【发布时间】:2014-04-27 21:34:40 【问题描述】:我需要使用 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];
我能做什么?
【问题讨论】:
cocos2D什么版本?自我是你的场景吗? 请注意,不要将标题编辑为“已解决”,而应选中正确答案旁边的复选框,这将向所有人表明有人帮助您解决了问题。 啊好的好的谢谢我刚刚做了 【参考方案1】: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 上。 你希望你的精灵在底部。所以你需要计算我在这张图片中显示的点:
所以 Y 值正好是精灵大小的高度/2。我们可以通过调用返回精灵大小的方法:[sprite boundingBox]
来获取这个值。
总之,我们的精灵以 X 为中心 (size.width/2) 和底部 ([sprite boundingBox].size.height/2)
【讨论】:
非常感谢您的解释!现在它可以正常工作了!再次感谢! 完美! :) 请接受正确的答案。谢谢!以上是关于独立于分辨率将精灵放置在屏幕底部的主要内容,如果未能解决你的问题,请参考以下文章
Unity 4.3 - 了解位置和屏幕分辨率,如何正确设置对象的位置?
将 Button 放置在具有不同屏幕尺寸的 ImageView 之上