【问题标题】:Cocos2d-x coordinatescocos2d-x坐标
【发布时间】:2015-04-23 06:49:04
【问题描述】:

在使用 Cocos2d-iPhone/swift/spritebuilder 几年后,我才开始使用 Cocos2D-x。

我注意到 X 中的坐标系似乎没有使用自 iOS 开发以来常见的 POINT 系统。即一个 10x10 点的盒子曾经在 1x 设备上是 10x10 像素,在 2x 设备上是 20x20 像素等等。

所以我的问题是,cocos2d-x 是否只处理像素?我们如何在代码中解决这个问题 - 因为我们曾经能够将精灵放置在 50x20 的位置,并且无论分辨率如何,它都会最终出现在任何设备上的正确位置。在 cocos2d-x 中不可能?我有 3.5。

相关的是这个文件,但是它说它已经过时了。哪里有更新的文件?我真的没有找到其他任何东西。 http://www.cocos2d-x.org/wiki/Multi_resolution_support

【问题讨论】:

  • 我最近一直在研究这个问题,我对在 iPhone 5 上调用 getWinSize、getWinSizeInPixels 和 getVisibleSize 感到惊讶。我在这里的部分答案与您的问题有关:stackoverflow.com/questions/29786958/…跨度>

标签: cocos2d-iphone cocos2d-x coordinate-systems


【解决方案1】:

您可以考虑使用不同的资产文件夹来处理各种分辨率大小。所以你可能有

FileUtils::getInstance()->setSearchResolutionsOrder(...)

您也可以在 AppController.mm 中自己更改内容比例因子,方法是:

// should behave as if all art is @1x device
Director::getInstance()->setContentScaleFactor(1.0);
// should behave as if all art is @2x device
Director::getInstance()->setContentScaleFactor(2.0);
// should behave as if all art is @4x 
Director::getInstance()->setContentScaleFactor(4.0);

这还没有更新,但仍有一些信息: http://www.cocos2d-x.org/wiki/Multi_resolution_support

【讨论】:

  • 是的,交易是设置 designResolutionSize。这样做会使我们拥有一致的“点”大小,并且对于一个设备类(如 iPhone 5、5s、5c),我们只需要一组坐标。当然,现在它仍然变得更加困难,因为 iPhone 4、6、6 Plus、iPad、Android 等比上述设备类别有更多/更少的分数。您链接的页面被标记为过时,但似乎仍然是整个官方 Cocos2d-x 社区中唯一可以解释正在发生的事情的信息位置。 cocos2d-x.org/wiki/…
  • 是的,我也许应该写一些包含在编程指南中的测试项目,否则我认为它暂时不会更新。我知道这是不断变化的功能之一,因为多分辨率+多密度可能很棘手。 Android(密度/分辨率特定的 XML 和文件夹)与 iOS 不同(@2x,@3x)
  • 同意。我最初在 iOS 设备上工作,并且以某种方式假设我以后可以在 Android 设备上使用相同的资产,前提是我使用了一些不同的设置。 :-P
  • 上面的 cocos2dx wiki 链接似乎已经失效了.. 不过这个有点用处:gamefromscratch.com/post/2014/10/01/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多