cocos2dx 3.6 屏幕适配

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/


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值