gpt4 book ai didi

ios - cocos2d Sprite 定位问题

转载 作者:行者123 更新时间:2023-11-28 22:13:09 25 4
gpt4 key购买 nike

我有一个 Sprite ,我想用作背景图像(使用 cocos2d)。

CCSprite *abc =[CCSprite spriteWithImageNamed:@"background.png"];    
abc.position = ccp(self.contentSize.width/2,self.contentSize.height/2);

第一张是原图,第二张是模拟器截图。图像的分辨率为 640/1136。我应该怎么做才能正常适应屏幕的所有空间?我该如何找到它?

enter image description here

enter image description here

最佳答案

您使用的代码是正确的。

您得到的结果不是您预期的,因为您可能在非 Retina 屏幕上加载了 Retina 图像。

查看 Cocos2d Naming conventions此处了解更多信息。

对于您选择的太阳背景图片,我假设您希望它始终位于右上角。 (这对我来说比居中更有意义)。

现在,一个优雅的解决方案是为您已经创建的 4 英寸 屏幕获取图像,并定义一个规则,使其左上角始终位于左上角屏幕的一角。对于 3.5 英寸 屏幕,这将被裁剪。

现在,首先你要定义一个 anchor 为

_background.anchorPoint = ccp(1.0f, 1.0f);

这将告诉 Cocos 将您的背景相对于右上角定位。

现在您可以继续定位它,使其始终位于屏幕的顶角。

background.position = ccp(self.scene.bounds.size.width, self.scene.size.height);

这将是执行此操作的标准和最佳方法。结果和好处:

  • 无需特定图像尺寸即可在3.5 和 4 英寸屏幕上工作
  • 简单,没有不必要的代码,尤其是 UI_INTERFACE_IDIOM 测试
  • 大多数人做事的方式

右上角定位的另一种方式

您还可以在 reference 中检查 CCNode 的新 positionType 属性. CCPositionUnitNormalized 可以帮助您定义定位规则,类似于将 position this 定位到父容器的 100% 宽度和 100% 高度。应该是这样的。

_background.positionType = CCPositionUnitNormalized;
_background.position = ccp (1.0f, 1.0f);

如果您更喜欢这种语法,也会得到相同的结果。

关于ios - cocos2d Sprite 定位问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22389753/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com