quick-cocos2dx多分辨率适配,控件重叠问题
来源:互联网 发布:网络协议分析与实现 编辑:程序博客网 时间:2024/06/05 16:30
1.关于quick-cocos2dx多分辨率适配,这里就不做详细介绍,简单来说在quick里面界面布局基于display属性。查看详情
2.这里要说的是关于具体项目界面在不同机型上的适配问题。首先项目肯定是基于某一个设备屏幕尺寸来做的(比如横版800*480),并且游戏界面是按这个尺寸来拼的。
比如我想设计一个界面:
显示1:基于左上角设置坐标,
显示2:基于右上角设置坐标
显示3:基于左下角设置坐标
注意:这里显示1和显示2中间的距离很小
设置config.lua如下:
CONFIG_SCREEN_WIDTH = 800
CONFIG_SCREEN_HEIGHT = 480
CONFIG_SCREEN_AUTOSCALE = "FIXED_HEIGHT"
然后使用quick-x-player查看显示,选择不同的View
在800*480的里面显示没有问题(请注意显示1和显示2中间的间隔很小),在3Gs中,就会出现这种情况
显示1和显示2重叠(中间为重叠区)
分析问题所在,在config.lua设置后,执行player,查看跟踪
可以看到,qx是做了缩放,然后把CONFIG_SCREEN_WIDTH改成了720。继续分析出现这种情况的原因:
首先缩放,这个和其他大小的显示设备一样没有问题。那么问题出现在哪呢。
可以看到显示2 是基于display.right做布局,但在跟踪里面看到这个值由800变成了720,意思就是说,在缩放后,屏幕右边 往左移动了54,而显示1是
基于display.left设置的,这个移动就导致了显示1和显示2重叠了。
至于这个问题怎么解决,个人觉得2个办法:
1.在设计游戏界面的时候,在基于最优的屏幕分辨率设计的时候,考虑下最小适配是否会出现这种重叠问题,前期最好能避免这个问题的出现
2.对重叠部分再次缩放,这个方法可能不是很好,因为需要针对出现这种情况的界面,考虑方法如下:
首先在800*480的屏幕下,获得显示1的宽度,显示1和显示2中间应该间隔多大的间距,比如这个总值是380,那么设定显示2的区域为400吧,如果display.right-380的值小于400,表明显示1和显示2会重叠。现在需要对显示2进行缩放,显示2为一个layer。
设置显示2的layer锚点为右上角(因为显示2是基于屏幕右上角,下面要进行缩放,要基于这个点)
判断是否需要缩放 (缩放因子是剩余的宽度/标准宽度400)
if display -380 < 400 then
layer:setScale((display -380)/400)
end
再次刷新qucik-player,可以看到显示1和显示2不会重叠了。但需要注意下,这个方法,可能会到时显示2不协调,因为只有显示2被再次缩放了。
如果还有更好的方法,请各位大虾不要吝惜,求分享
- quick-cocos2dx多分辨率适配,控件重叠问题
- cocos2dx 多分辨率适配
- cocos2dx 多分辨率适配
- cocos2dx 多分辨率适配
- cocos2dx 多分辨率适配
- quick - lua 分辨率适配
- cocos2dx多分辨率适配解析
- cocos2dx的多分辨率适配(一)
- Quick Cocos2dx 调试问题
- quick-cocos2d-x 多分辨率适配详解
- quick-cocos2d-x 多分辨率适配详解
- quick-cocos2d-x 多分辨率适配详解
- Quick-Cocos2d-x 多分辨率适配详解
- quick-cocos2d-x 多分辨率适配详解
- quick-cocos2dx-luaUI控件讲解
- cocos2dx 苹果5分辨率 适配错误
- cocos2dx 多分辨率适配方案
- cocos2dx 自学知识点之四 不同的分辨率适配问题
- java的web.xml中<url-pattern>配置
- 不用比较运算符比较两个数的大小
- 国家气象局提供的天气预报接口
- android4.0.3源码之硬件gps简单移植
- 如何将Spring配置文件已配置的类Mock
- quick-cocos2dx多分辨率适配,控件重叠问题
- Mysql rownum 实现(极度推荐)
- android 与struts2的通信并返回json式
- 通过HOOK系统的API接口实现对API功能的修改
- 实战开发企业级ERP进销存管理项目视频教程下载
- OpenGVS.v4.5-ISO 1CD(用于场景图形的视景仿真的实时开发
- 某人Linux面试题
- 让Windows命令行显示UTF-8字符
- snmp trap入门