迁移Cocos2d到最新的设备支持



嗨,我正试图运行我的非常旧的代码(2011年)到新的Xcode12。我可以运行它,但我的偏移量弄乱了UI。我的SCALEX, SCALEY, OFFSETX, OFFSETY弄得一团糟,因为可用的时间设备只有iPhone4s和标准iPad。如何改变那些支持所有设备的今天。这是我原来的常量。

//规模

#define SW ([[CCDirector sharedDirector] winSize].width)
#define SH ([[CCDirector sharedDirector] winSize].height)
#define SCALEX                                  (1600.0f / 3.0f) / 800.0f
#define SCALEY                                  320.0f / 480.0f
#define OFFSETX                                 ((1600.0f / 3.0f) - 480.0f) / 2
#define OFFSETY                                 (320.0f - 320.0f) / 2

我不太确定SCALEXOFFSETX是如何计算的,但似乎480.0f和320.0f可以用

代替
#define DEVICE_HEIGHT [[[[UIApplication sharedApplication] keyWindow] rootViewController].view convertRect:[[UIScreen mainScreen] bounds] fromView:nil].size.height

#define DEVICE_WIDTH [[[[UIApplication sharedApplication] keyWindow] rootViewController].view convertRect:[[UIScreen mainScreen] bounds] fromView:nil].size.width

最终表达式为

#define SCALEX                                  (1600.0f / 3.0f) / 800.0f
#define SCALEY                                  DEVICE_WIDTH / DEVICE_HEIGHT
#define OFFSETX                                 ((1600.0f / 3.0f) - DEVICE_HEIGHT) / 2
#define OFFSETY                                 (DEVICE_WIDTH - DEVICE_WIDTH) / 2

请让我知道它是否产生更好的结果,如果我们能知道1600和800的值,我们可以改进解决方案。

相关内容

  • 没有找到相关文章

最新更新