【发布时间】:2014-03-03 18:39:30
【问题描述】:
我一直在使用 Cocos2D 0.99.5 的修改版本。就位置而言,这个修改后的版本没有任何变化,但是当我启用视网膜时,tmx 地图显示正常,但检测到的瓷砖,很可能使用 tileGIDAt 和带有 ccp 的位置,以及定位精灵都离得很远。这是我已经进行了一些研究的已知情况,但不知道克服它的最简单方法。我希望在 Cocos2D 中只编辑一些东西(使用视网膜时使用点而不是像素)来解决这个问题,但我还没有在网上看到任何提到这一点的东西。
我看到一些代码将对象的位置除以 CC_CONTENT_SCALE_FACTOR
CGPoint objectPosition = [tmxLayer positionAt:objectTile];
if (CC_CONTENT_SCALE_FACTOR() == 2){
objectPosition.x /= CC_CONTENT_SCALE_FACTOR();
objectPosition.y /= CC_CONTENT_SCALE_FACTOR();
}
在查看了 Cocos2D 中的一些方法后,我真的不知道在哪里使用它。那么我需要做哪些确切的更新以及我需要将它们放在哪里?
【问题讨论】:
-
您正在使用超过 3 年的 cocos2d 版本.. 为什么? FWIW,如果不是 2.x,您可能最好尝试一下,至少升级到 v1.1。
-
这能解决这个问题吗?我尝试升级到 2.x,但由于我有数百个代码文件,所以有太多不兼容的东西。
-
不知道,但 1.1 和 2.x 肯定有更多的修复/更好的 Retina 支持。你的版本绝对不支持 iPad Retina 和宽屏手机。至于更改,其中大部分将被重命名为类/方法,功能基本保持不变。您总是可以先尝试更新到 1.0.1 或 1.1,然后再从那里升级到 2.x。
-
谢谢。我可以在不切换到 ARC 的情况下进行这些升级吗?
标签: objective-c cocos2d-iphone position retina-display