博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
cocos2d-x多分布率适配(iphone5、ipad、android)
阅读量:5013 次
发布时间:2019-06-12

本文共 2457 字,大约阅读时间需要 8 分钟。

游戏已经提交app store等待审核了,现在整理下相关资料。先说说分辨率的问题。

cocos2d-x从2.0.4版本已经完美适配了各种分辨率,下面贴下相关代码,

在AppDelegate::applicationDidFinishLaunching(){}里面加这些代码:

 

// 填充模式	ResolutionPolicy kResolutionNum = kResolutionNoBorder;	if (target == kTargetIpad)	{		// ipad		CCFileUtils::sharedFileUtils()->setResourceDirectory("iphonehd");		// don't enable retina because we don't have ipad hd resource		CCEGLView::sharedOpenGLView()->setDesignResolutionSize(1024, 768, kResolutionNum);	}	else if (target == kTargetIphone)	{		// iphone		// 设计尺寸width、height		float visibleSizeWidth = 960;		float visibleSizeHeight = 640;		// 根据屏幕尺寸与设计尺寸的比,重新定义设计尺寸(参考kResolutionNum来适配)		CCSize winSize = CCDirector::sharedDirector()->getWinSize();		if (winSize.width/winSize.height > visibleSizeWidth/visibleSizeHeight)		{			visibleSizeWidth = visibleSizeHeight * winSize.width/winSize.height;		}		else if (winSize.width/winSize.height < visibleSizeWidth/visibleSizeHeight)		{			visibleSizeHeight = visibleSizeWidth / (winSize.width/winSize.height);		}		CCFileUtils::sharedFileUtils()->setResourceDirectory("iphonehd");		CCSize VisibleSize = CCEGLView::sharedOpenGLView()->getVisibleSize();		CCEGLView::sharedOpenGLView()->setDesignResolutionSize(visibleSizeWidth, visibleSizeHeight, kResolutionNum);	}	else 	{		// android, windows, blackberry, linux or mac		// use 960*640 resources as design resolution size				// 设计尺寸width、height		float visibleSizeWidth = 960;		float visibleSizeHeight = 640;		// 根据屏幕尺寸与设计尺寸的比,重新定义设计尺寸(参考kResolutionNum来适配)		CCSize winSize = CCDirector::sharedDirector()->getWinSize();		if (winSize.width/winSize.height > visibleSizeWidth/visibleSizeHeight)		{			visibleSizeWidth = visibleSizeHeight * winSize.width/winSize.height;		}		else if (winSize.width/winSize.height < visibleSizeWidth/visibleSizeHeight)		{			visibleSizeHeight = visibleSizeWidth / (winSize.width/winSize.height);		}				CCFileUtils::sharedFileUtils()->setResourceDirectory("iphonehd");		CCEGLView::sharedOpenGLView()->setDesignResolutionSize(visibleSizeWidth, visibleSizeHeight, kResolutionNum);		CCFileUtils::sharedFileUtils()->setPopupNotify(false);	}

 

 

 

注意:1.适配iphone5时要添加一张启动图片,图片命名为Default-568h@2x.png,不然iphone5两边还是黑边。

     2.setDesignResolutionSize()是指设计尺寸,而getWinSize()是窗口尺寸,显示时是把设计尺寸按照设置的填充模式映射到窗口上去。

     3.三种填充模式:kResolutionExactFit(宽高非等比缩放,全填充)、kResolutionNoBorder(宽高等比缩放,部分区域可能被裁减)、kResolutionShowAll(宽高等比缩放,部分区域可能出现黑边),我觉得用kResolutionNoBorder好些。

转载于:https://www.cnblogs.com/dyllove98/archive/2013/06/07/3125047.html

你可能感兴趣的文章
UVALive 4128 Steam Roller 蒸汽式压路机(最短路,变形) WA中。。。。。
查看>>
记忆--1.致我们不可缺少的记忆
查看>>
lintcode28- Search a 2D Matrix- easy
查看>>
react项目
查看>>
C# 万年历 农历 节气 节日 星座 星宿 属相 生肖 闰年月 时辰(转)
查看>>
A Simple Tree Problem
查看>>
Modular Inverse [ZOJ 3609]
查看>>
MySQL性能测试工具之mysqlslap使用详解
查看>>
深入理解jsonp跨域请求原理
查看>>
regsvr32注册COM组件失败
查看>>
jmeter,CSV数据加载、数据库连接、正则
查看>>
(独孤九剑)--正则表达式
查看>>
MySQL学习点滴 --分区表
查看>>
4.6.1 测试基础
查看>>
洛谷 P2486 [SDOI2011]染色
查看>>
oo第三单元总结
查看>>
leetcode : Count and Say [基本功]
查看>>
洛谷 P2485 [SDOI2011]计算器 解题报告
查看>>
c#访问存储过程
查看>>
Slickflow.NET 开源工作流引擎基础介绍(三) -- 基于HTML5/Bootstrap的Web流程设计器
查看>>