独立于分辨率将精灵放置在屏幕底部

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 - 了解位置和屏幕分辨率,如何正确设置对象的位置?

小米13的屏幕分辨率怎么调

Libgdx Box2d 屏幕分辨率

将 Button 放置在具有不同屏幕尺寸的 ImageView 之上

在RelativeLayout中将Android按钮与底部对齐?

惠普暗影精灵8Pro和联想拯救者Y9000P哪个好