Cocos2d-x NO_BORDER适配

cocos2d-x版本(3.0)

ResolutionPolicy::NO_BORDER 顾名思义,指的就是适配后没有黑边。原理上是根据设计尺寸的宽高和屏幕宽度的宽高,计算出最佳缩放比例,保证在横向或纵向上有一个方向能完全适配屏幕,然后在大于屏幕宽度或高度的那个方向对openglView坐标居中处理

这个适配策略的缺点就是如果设计尺寸的宽高比和屏幕宽高比不一样,会有一部分内容显示在屏幕外,解决办法就是在定坐标的时候使用根据visibleOriginvisibleSize计算出的相对坐标


下面根据一些数据理解以下适配的效果。我们先看Director给我们提供的几个接口:
director->getWinSize()   获得窗口尺寸
director->getVisibleSize()    获得可见尺寸
director->getVisibleOrigin()    获得可见区域的锚点

假如我们按照640X960的尺寸设计游戏, glview->setDesignResolutionSize(640,960,ResolutionPolicy::NO_BORDER),那么根据不同窗口大小,会有以下的输出

①窗口大小  320X480
winSize {640,960}
visibleSize {640,960}
visibleOrigin {0,0}

②窗口大小  640X800
winSize {640,960}
visibleSize {640,800}
visibleOrigin {0,80}

③窗口大小  800X800
winSize {640,960}
visibleSize {640,640}
visibleOrigin {0,160}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值