Cocos2D iOS之旅:如何写一个敲地鼠游戏(二):Cocos2D中的高清支持
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处.
如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;)
免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流之用,请勿进行商业用途。同时,转载时不要移除本申明。如产生任何纠纷,均与本博客所有人、发表该翻译稿之人无任何关系。谢谢合作!
高清显示和Cocos2D
好吧,有一个好消息 — 在最新版本的Cocos2D中包括了高清屏的完整支持,你可以用下面1-2-3步就可简单搞定!
- 在调用CCDirector的enableRetinaDisplay方法在app开始时启用高清支持.如果你使用cocos2D项目模板,你只需要在app delegate中在那一行去掉注释即可.
- 增加高清精灵到你的app中,但是不是使用”@2x”后缀,而是为cocos2D使用”-hd”后缀.当你加载精灵的时候,在普通屏将使用普通图片,在高清屏Cocos2D将在高清屏自动为你加载高清图片.
- 现在你可以在Cocos2D中使用点来代替像素来定位了.注意一些APIs(但不是很多)任然必须以像素处理 — 当在这种情况下,它们的名称中将带有像素字眼,否则一律一点来处理.
在一般情况下,最容易的事是制作一张最高分辨率的图片(比如高清屏下的2X大小),然后你可以简单缩小图片到普通的iphone适用的尺寸上.
你可能会奇怪为什么要劳神创建两张不同的图片 — 为什么不总是调用一张大的图片然后用编程将其缩小呢?好吧,加载纹理到内存中是app的内存克星,所以如果你在普清屏上加载高清图片将会浪费大量的内存.
但是别担心 — 你不需要总是在Photoshop中缩放图片.TexturePacker实际上已经有了缩放给定图片的特性,它正好被用在我们的Cocos2D之旅上.
iPad,iPhone以及屏幕纵横比
以上使得我们在高清屏中的处理更加容易,但是在iPad中怎么办?
好吧,这将给我们带来一个非常烦人的问题:如何使其在iphone和ipad上都能正常工作 — 比较这些设备的屏幕纵横比不一样!
iPhone的分辨率为480x320活着960x640 — 纵横比为1.5,而ipad分辨率为768x1024(原作者写作时高清ipad还未出世.猫猪注),纵横比为1.33.
这意味着如果你将一张在ipad(768x1024)填充整个背景的图片在iphone上重新使用的时候,可能不会完全适配.如果你按iphone的宽度来缩小图片(乘以0.9375),你将得到720x960,所以额外的部分将会被裁剪掉!
这很让人讨厌,因为不光是背景图片,屏幕纵横比问题也使得跨设备兼容难上加难.
这里有一些解决方案,这里列出一些(你可以在评论中也将你自己的解决方案贴出来):
- 在高清屏iPhone(640x960)屏幕中心划出一片”可玩区域(playable area).这将在边框附加有稍许额外的超出 — 你可以用背景将其掩盖,玩家可能甚至不会注意到.这将允许你容易的在各种不同的设备上重用素材和转换坐标.我们在本系列博文中就是用这种方法.
- 你可以在iphone上使用类似纵横比,如果你在ipad屏幕上将”main content”限制在684x1024中的话,这将给你的ipad屏幕每条边带来42像素的边框.如果你能调整内容适应684x1024矩形,你也可以为其他设备缩小图片.
- 你可以为iPhone,iPad和高清屏设备准备不同的图片,它们的坐标系也不同.这将具有最大的弹性,但是也会增大app文件的尺寸
对于这些难题 — Cocos2D目前并没有任何帮助方法在ipad上自动为你加载”-hd”后缀的图片(新版本的Cocos2D已经可以为ipad选择合适的图片了.猫猪注),以及转换坐标系等等工作.一切都取决于你!
Cocos2D iOS之旅:如何写一个敲地鼠游戏(二):Cocos2D中的高清支持的更多相关文章
- Cocos2D iOS之旅:如何写一个敲地鼠游戏(五):设置背景
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流 ...
- Cocos2D iOS之旅:如何写一个敲地鼠游戏(八):为动画建立属性列表
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流 ...
- Cocos2D iOS之旅:如何写一个敲地鼠游戏(三):素材最终解决方法
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流 ...
- Cocos2D iOS之旅:如何写一个敲地鼠游戏(一):高清屏显示和UIKit
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流 ...
- Cocos2D iOS之旅:如何写一个敲地鼠游戏(六):放置地鼠
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流 ...
- Cocos2D iOS之旅:如何写一个敲地鼠游戏(十一):完善游戏逻辑
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流 ...
- Cocos2D iOS之旅:如何写一个敲地鼠游戏(七):弹出地鼠
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流 ...
- Cocos2D iOS之旅:如何写一个敲地鼠游戏(十):创建游戏逻辑
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流 ...
- Cocos2D iOS之旅:如何写一个敲地鼠游戏(九):创建动画
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流 ...
随机推荐
- Python中编码的详细讲解
看这篇文章前,你应该已经知道了为什么有编码,以及编码的种类情况 ASCII 占1个字节,只支持英文 GB2312 占2个字节,支持6700+汉字 GBK GB2312的升级版,支持21000+汉字 S ...
- 【Java关键字-Interface】为什么Interface中的变量只能是 public static final
三个关键字在接口中的存在原因:public:接口可以被其他接口继承,也可以被类实现,类与接口.接口与接口可能会形成多层级关系,采用public可以满足变量的访问范围: static:如果变量不是sta ...
- django.db.utils.ProgrammingError: 1146 的解决办法
在models中设置完数据库相关的东西后执行命令 python manage.py makemigrations 此处无错误 再次执行 python manage.py migrate 发生报错 错误 ...
- 【DDD】--好文收藏
发现一批好文,完整系列,攒~~ 随笔分类 - DDD - 『圣杰』 DDD理论学习系列(1)-- 通用语言 笔记: 通用语言: a) 简单,便于理解.传播. b) 需要通用,能够准确的传达业务规则. ...
- beta 分布的详细介绍(转载)
目前看到的关于beta分布最好的一个解释,由于贴过来格式不好看,所以附上链接: http://www.datalearner.com/blog/1051505532393058
- Linux搭建lamp(Apache+PHP+Mysql环境)centos7.2版详细教程
我们更多的网站服务器是选择了Linux系统,这里建议你选择centos,这也是阿里云ecs推荐的系统,在服务器上比较推荐centos,特别对于新手,首选CentOS,并不是centos比Debian和 ...
- Docker 自定义网桥
除了默认的 docker0 网桥,用户也可以指定网桥来连接各个容器. 在启动 Docker 服务的时候,使用 -b BRIDGE或--bridge=BRIDGE 来指定使用的网桥. 如果服务已经运行, ...
- JavaScript switch 语句
switch 语句用于基于不同的条件来执行不同的动作. JavaScript switch 语句 请使用 switch 语句来选择要执行的多个代码块之一.你可以在JavaScript编程实战中了解怎么 ...
- FindBugs入门简介(eclipse安装使用实例)
前言:一般公司都会有一些开发规范,但是事实上,简单看那么一两遍并不能养成习惯,或者将这些规范记住.特别的,对于一些新手,写的代码往往会很糟糕.回头看看你一两年前写的代码就会知道,所谓的"糟糕 ...
- Spark Streaming + Kafka整合(Kafka broker版本0.8.2.1+)
这篇博客是基于Spark Streaming整合Kafka-0.8.2.1官方文档. 本文主要讲解了Spark Streaming如何从Kafka接收数据.Spark Streaming从Kafka接 ...