您的位置:首页 > 移动开发 > Cocos引擎

cocos2d-x IOS适配 一种不改变你图片品质的适配原理(美女程序员的文章)

2013-12-10 12:17 357 查看
首先,我想说的是,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,就是这样的!

还有问题的话,可以留言!

转自:/article/11263526.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: