好贷网好贷款

cocos2d-x IOS适配 一种不改变你图片品质的适配原理

发布时间:2016-12-4 7:53:52 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"cocos2d-x IOS适配 一种不改变你图片品质的适配原理",主要涉及到cocos2d-x IOS适配 一种不改变你图片品质的适配原理方面的内容,对于cocos2d-x IOS适配 一种不改变你图片品质的适配原理感兴趣的同学可以参考一下。

 首先,我想说的是,cocos2d-x有自己的几种自适配方式,网上有很多资料,我就不多说了!也许你也遇到过跟我一样的适配麻烦,老板、策划并不满意cocos2d-x自带的适配原则,因为它往往要改变你的图片质量!现在,我想把我的适配原则分享给大家,一套游戏资源不改变资源品质下,适配所有IOS设备,你们也可以借鉴一下! 要使用的我的适配原则,第一,你的游戏贴图必须遵守一定规则,都要根据屏幕宽高来确定你的贴图位置(应该大部分都是这么做的),如cocos2d::CCSize mySize = cocos2d::CCDirector::sharedDirector()->getVisibleSize(); cocos2d::CCSprite *windPause = cocos2d::CCSprite::create("pauseFrame.png"); this->addChild(windPause); windPause->setAnchorPoint(ccp(0.5,0)); windPause->setPosition(ccp(mySize.with/2,0));上面的例子是加载一张背景图片,这个背景图片的描点被我设置在了(0.5,0)(这个描点可以按你自己的情况来设定,最好是(0.5,0.5)、(0.5,1)),这个应该不需要解释太多了吧!我这样设置是有原因的,因为,我将利用这个来设置游戏的适配!在游戏适配中,当你把背景图片适配好了,其他的都好说!然后现在,我希望你的背景图片是768*1136(1136*768)的,这样的话,除了(1536*2048)的分辨率不可以达到,其他IOS设备的分辨率都可以达到。说到这里,应该有很多人知道该怎么做了!你可以拿我以上的代码测试一下,不需要加上cocos2d的任何适配函数,在除newpad以上设备之外,包括所有iphone,ipad2以下,都不出现黑边,也不存在图片失真!但是,你的图片被切掉了一部分!!!如640*960,图片的宽被左右各切掉了(768-640)/2,而高是图片的上部分被切割了(1136-960) (在描点设置是(0.5,0)时)。都到这里了,你们应该懂了吧!然后就是在游戏里面把你的人物,按钮加进去,只个时候,他们的坐标要根据屏幕大小来适配就OK了!当然,这里不得不说的一个优化,被切除的部分并不代表他没有显示,他只是显示在了你看不到的地方,还是占GPU的!所以你可以设置显示区域为屏幕大小,这样就可以得到优化了! 再说一说(1536*2048)适配,我们不可能把图片做成1536*2048那么大的来适配,,如果放在iphone上,就很浪费了(如果你觉得不,你也可以这么做)!我对1536*2048的适配是怎么做的呢!你要知道cocos2d-x  的 kResolutionShowAll的适配方式的缺陷就是不等比缩放时存在明显变形!然而1536*2048 正好是(768*1024)*2得到的,可以达到等比缩放的效果!这样,你就知道怎么做了吧,好吧,有些妹子可能还是不懂(呵呵)!#if (CC_TARGET_PLATFORM==CC_PLATFORM_ANDROID) pEGLView->setDesignResolutionSize( 640, 1136, kResolutionShowAll); #else if(s.width>768) { pEGLView->setDesignResolutionSize(768, 1024, kResolutionShowAll); } #endif以上代码表示在安卓情况下使用cocos2d的适配方式(分辨率太多,招呼不过来),然后IOS情况下(1536*2048)的时候就用768*1024缩放过来,OK,就是这样的! 还有问题的话,可以留言!

上一篇:jqGrid学习
下一篇:[34期] 路漫漫其修遠兮,吾將上下而求索

相关文章

相关评论