当前位置: 首页 > news >正文

cocos2d-x多分布率适配(iphone5、ipad、android)

游戏已经提交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

相关文章:

  • 此版本的 SQL Server 不支持用户实例登录标志。该连接将关闭“的解决(转)
  • ASP.NET MVC 3.0(三): 初识MVC的Url映射潜规则Routing
  • C# 数据库删除操作错误报错 System.Data.SqlClient.SqlException (0x80131904)
  • vs2010的新特性(感悟var)
  • 动态规划方法之最长公共子序列
  • android19
  • 推荐系统的挑战(转载)
  • Android中获取IMEI码
  • Access数据库和SQL Server数据库在实际应用中的区别
  • SQL SERVER 驱动程序错误
  • Android屏蔽返回键
  • Error: member names cannot be the same as their enclosing type
  • Apache开启GZIP 压缩网页
  • C# Unit Test 备注
  • 26种激发人创造力的天使商标设计
  • 【comparator, comparable】小总结
  • 08.Android之View事件问题
  • Android单元测试 - 几个重要问题
  • CODING 缺陷管理功能正式开始公测
  • Effective Java 笔记(一)
  • ERLANG 网工修炼笔记 ---- UDP
  • Github访问慢解决办法
  • JavaScript服务器推送技术之 WebSocket
  • node和express搭建代理服务器(源码)
  • Selenium实战教程系列(二)---元素定位
  • SOFAMosn配置模型
  • SpringCloud(第 039 篇)链接Mysql数据库,通过JpaRepository编写数据库访问
  • SQLServer之创建数据库快照
  • Vue2.0 实现互斥
  • Web设计流程优化:网页效果图设计新思路
  • 百度贴吧爬虫node+vue baidu_tieba_crawler
  • 判断客户端类型,Android,iOS,PC
  • 使用 @font-face
  • 我看到的前端
  • 新版博客前端前瞻
  • 用简单代码看卷积组块发展
  • ​flutter 代码混淆
  • # 飞书APP集成平台-数字化落地
  • #define用法
  • ${factoryList }后面有空格不影响
  • (1)常见O(n^2)排序算法解析
  • (2021|NIPS,扩散,无条件分数估计,条件分数估计)无分类器引导扩散
  • (2022版)一套教程搞定k8s安装到实战 | RBAC
  • (Redis使用系列) Springboot 整合Redisson 实现分布式锁 七
  • (Ruby)Ubuntu12.04安装Rails环境
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (附表设计)不是我吹!超级全面的权限系统设计方案面世了
  • (一)VirtualBox安装增强功能
  • (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决
  • (转)IOS中获取各种文件的目录路径的方法
  • (转)Linux整合apache和tomcat构建Web服务器
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包
  • .bat批处理(五):遍历指定目录下资源文件并更新
  • .describe() python_Python-Win32com-Excel
  • .NET CLR基本术语