cocos2dx屏幕适配

为什么需要适配

因为设计分辨率和实际分辨率不一致。

适配策略

cocos2dx提供了下面5种适配策略

  • 设计分辨率的宽高比 = 实际分辨率的宽高比

    • 只需要放大或者缩小
  • 设计分辨率的宽高比 ≠ 实际分辨率的宽高

    • 变形缩放
      • 拉伸变形,能保证宽和高都撑满,对应 EXACT_FIT
    • 不变形缩放
      • 一直缩放,直到宽和高都撑满,不留黑边,对应 NO_BORDER
      • 宽或高刚撑满就不缩放了,另一个方向就会留黑边,对应 SHOW_ALL
      • 宽缩放到撑满就停,不管高撑满没有,对应 FIXED_WIDTH
      • 高缩放到撑满就停,不管宽撑满没有,对应 FIXED_HEIGHT

推荐做法

如果是竖屏游戏,可以用定宽策略,只需要把素材做的高一点。

如果是横屏游戏,可以用定高策略,只需要把素材做的宽一点。

给美术出图的建议

目前我遇到的设备最大的长宽比是2.3。如果一个竖屏游戏的设计分辨率是 480*800 ,那么背景图的高应该是 480*2.3=1104

程序如何在代码中动态调整UI元素的位置

我推荐的做法是中心点对齐。然后四个边的某些UI元素需要动态设置位置。

如果是竖屏定宽模式,那么顶部和底部的元素需要调整位置,利用可视区域原点可视区域尺寸来做修改。

关于刘海屏

现在安卓和苹果都有刘海屏,刘海屏需要在代码中获取刘海高度来做动态调整。