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

cocos2dx 3.6 屏幕适配

2017-02-17 13:41 330 查看
1: 用一个设计分辨率来匹配不同的资源

直接修改setFrameSize

2:用一套资源来适配不同的设计分辨率

1: 背景适配

(1)第一种做法是把背景跟UI分开,背景手动放大,使背景超出屏幕位置。(做背景图片时应该把主要像素集中在背景的中心位置)

(2)第二种做法------ 拿宽度适配来举例:

因为是宽度适配,所以宽度会正好占满屏幕,此时可以把整个高度分成三部分来解决(把背景图片分出三张图)。  上--- 中----下,上面的图片拿代码固定在屏幕的最上方,下面的图片固定在屏幕的最下方,然后中间区域手动缩放比例。  此种做法优于第一种,不同手机比例看上去效果相同,但美术需要把一张背景图切割成三张。

2:UI适配

(1)第一种做法是UI全部拿代码写,可手动实现适配

(2)第二种做法是UI先拿cocos studio拼好,然后拿代码调整按钮的位置。

适配代码如下 : 

void AppDelegate::adaptPhone(GLView *glview)
{
// 1920/1080 = 16:9 = 1.78   16:10 -> 16:9         16:12 -> 16:9
//  1280/800 = 16:10 = 1.6  所以如果宽度适配,高度显示不全   如果高度适配,宽度会有黑边
//资源大小
Size resSize = AppDelegate::designSize;//1136, 768为美术出图的尺寸
//屏幕大小
auto winSize = Director::getInstance()->getWinSize();
//x缩放比例
float widthScale = winSize.width / resSize.width;
//y缩放比例
float heightScale = winSize.height / resSize.height;

//背景图片 1136,768

if (widthScale > heightScale)// <
{
//1432,800  所有坐标都是相对于这个分辨率
glview->setDesignResolutionSize(resSize.width, resSize.height, ResolutionPolicy::FIXED_HEIGHT);
}
else
{
//1280,720  所有坐标都是相对于这个分辨率
glview->setDesignResolutionSize(resSize.width, resSize.height, ResolutionPolicy::FIXED_WIDTH);
}

//高度适配 -----1136,768会自动缩放成 1366,768
auto size = glview->getDesignResolutionSize();
log("");
}
参考链接: 
http://www.zaojiahua.com/adaptation.html http://blog.csdn.net/chinahaerbin/article/details/39586281 http://www.tairan.com/archives/4018/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: