让Cocos2d-x实现全屏等比缩放适配Android各种分辨率

    用Cocos2d-x开发游戏有个很头痛的问题,Android的分辨率实在太多了。

    虽然Android可以全屏,但是因为不同屏幕的长宽比例不同,针对一个分辨率设计好的游戏在别的手机上就可能拉高或压扁,很是难看。

    Cocos2d-x提供了等比缩放的功能,可以在不需修改游戏代码的前提下把游戏图像等比显示到不同的手机上;但是因为长宽比不同的原因,可能在手机的左右两边或上下两边留下点黑边。

    上面两种多分辨率适配方案都有缺点,不是很爽。所以亲自抄刀整了个“Cocos2d-x 全屏等比缩放 多分辨率适配方案”, 哇咔咔——拿Helloworld当小白鼠,上图:

HVGA

这个是游戏设计的大小,是HVGA的,效果很完美。

image

这个是在QVGA上的效果,背景图左右少显示了一点点。

image

这个是在WVGA上的效果,背景图上下少显示了一点点。

    上面的效果在不同分辨率上保持了长宽比,在不同分辨率上都实现的全屏效果,血条、控制杆等UI元素也都保持在了屏幕区域内。

    其实方法很简单,在保持长宽比的前提下缩放图像盖满屏幕,然后用代码获取触摸屏上下左右和斜方向和屏幕边缘相交的8个点+中心点的坐标位置作为定位点,所有血条等UI元素根据9个定位点在屏幕内定位。这样就可以了。

    示例源码下载,代码基于cocos2d-1.0.0-x-0.9.0,对引擎部分做了点修改,使用方法详见readme.txt。

posted @ 2011-07-22 16:58  流星asdf  阅读(12215)  评论(4编辑  收藏  举报