Cocos2D iOS之旅:如何写一个敲地鼠游戏(一):高清屏显示和UIKit

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处.

如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;)


免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流之用,请勿进行商业用途。同时,转载时不要移除本申明。如产生任何纠纷,均与本博客所有人、发表该翻译稿之人无任何关系。谢谢合作!

原文由Ray Wunderlich写成,地址在:

http://www.raywenderlich.com/2560/cocos2d-tutorial-for-ios-how-to-create-a-mole-whacking-game-part-1

猫猪的翻译有删减,但不影响项目的整体理解,感谢阅读 ;]

准备素材:总览

因为我们希望这个游戏运行在普通iphone,高清屏iphone以及ipad上,所以我们需要花些时间做些细致的计划:在我们继续搞起之前如何设置游戏素材.

为了理解如何适应尺寸和设置素材,我们需要首先涉及3个主题:

  • 高清屏显示和UIKit
  • 高清屏显示和Cocos2D
  • iPad,iPhone和屏幕纵横比

让我们开始吧!

高清屏显示和UIKit

普通iPhone和高清屏iPhone的不同之处在于后者可以显示2倍的像素.所以(在横屏中)作为普通屏幕480x320 px的替代,高清屏的分辨率为960x640像素.

“但是先等一下”,你可能会想,”为什么双倍增加像素没有使之前写的适用于480x320像素的app出问题呢?”,它可能会有(尤其当你在UIKit中硬编码帧大小的时候),除了在UIKit中你设置帧大小的时候,你实际上可以设置尺寸单位为点而不是像素.

在普通的iPhone上,一个点精确等于一个像素,但是在高清屏iphone上,一个点被定义为2个像素.所以当你以点来表示(10,10)位置的时候,在普通iphone中该位置确实在(10,10),而在高清iphone中该位置实际上在(20.20),所以它们都出现在相同的相对位置上,很酷不是吗?

当你使用Apple的空间或者Core Graphics时,Apple已经帮你写了在高清屏上使事情变得美好和简单的代码.

真正神奇的地方是你使用一张图片的时候.比如你在一个iphone app中使用一张200x200的图片.如果你不做任何事,在高清屏它将仅仅将图片放大到2倍大小 — 这看起来不太好因为你没有从高分辨率中获得任何好处.

所以你将要做的就是为你所有的图片提供其他的版本:一张普通版本,另一张为高分辨率版本.如果你你用”@2x”结尾来命名你的图片,无论何时你试图用[UIImage imageNamed:…]或相似的APIs载入一张图片时,它将会在高清屏设备上自动载入@2x的图片.

所以使得UIKit app在高清屏设备上运行非常简单 — 只要添加@2x图片,你的主要工作就完成了.

但是在Cocos2D上呢?

时间: 2025-01-02 14:02:47

Cocos2D iOS之旅:如何写一个敲地鼠游戏(一):高清屏显示和UIKit的相关文章

Cocos2D iOS之旅:如何写一个敲地鼠游戏(八):为动画建立属性列表

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流之用,请勿进行商业用途.同时,转载时不要移除本申明.如产生任何纠纷,均与本博客所有人.发表该翻译稿之人无任何关系.谢谢合作! 在之前的博文中,我们创建了游戏的基础 - 小可爱的地鼠从洞中呼之欲出.我们花了大量的时间思考关于如何组织素材以及坐标置位,以让我们的游戏在iphone,ipad以及高清屏上看

Cocos2D iOS之旅:如何写一个敲地鼠游戏(二):Cocos2D中的高清支持

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流之用,请勿进行商业用途.同时,转载时不要移除本申明.如产生任何纠纷,均与本博客所有人.发表该翻译稿之人无任何关系.谢谢合作! 高清显示和Cocos2D 好吧,有一个好消息 - 在最新版本的Cocos2D中包括了高清屏的完整支持,你可以用下面1-2-3步就可简单搞定! 在调用CCDirector的en

Qt ,mac osx ios x11 高清屏,视网膜的支持

Qt 5.0中添加了对于retina显示的基本支持.即将到来的Qt 5.1中提供了新的API和缺陷修复,对于这一问题进行了改进.Qt 4.8也获得了良好的支持,我们反向移植了一些Qt 5的补丁. 尽管这些实现的努力和Mac以及iOS程序员最为相关,但是来看一看其它平台是如何处理高DPI显示这一问题,也是很有趣的.这里主要有两种方式: 基于DPI缩放--Win32 GDI和KDE.在这种方式中,应用程序在全物理设备分辨率下工作,使用系统提供的一个DPI设定或者缩放因子,用于缩放布局.字体通常会被操

Android用SurfaceView写一个简单有趣的游戏--《数字组合》之一

最近突然有了一个想法--做一款android的简单游戏练练手,既要实现起来简单(毕竟只有一个人,框架什么的暂且就不用考虑了),又要能够达到对android知识框架的复习和游戏要有可玩性,终于用了几个星期写完了.和大家分享分享体会吧. 本来打算写一个专栏的.看以后的时间吧. 首先介绍一下游戏的主要思想和SurfaceView也就是游戏主界面的代码分享,后续部分再更新吧. 在点击 开始游戏 后,进行组合数字的选择,根据难易程度系统默认选择2和8,选择界面中间显示选择的组合数字,第一个数字表示第一个组

Python写一个像QQ可快捷键唤起区域截屏的应用

1.截屏应用功能拆解 先把要实现哪些功能罗列一下,功能拆解好了,程序设计时就比较清晰. 1).首先要能响应快捷键调起截屏程序,像QQ使用Ctrl+shift+B可以截屏一样: 2).然后就是截图功能,可以用鼠标选取截取的区域: 3).最后是要把截屏保存为本地图片. 2.做一下技术调研 功能拆解出来了,就开始调查下实现难度,有没有现成的第三方库可用,Python是出了名的库多,多找一找总会找到的. 搜寻了一下Python有截图功能的库,基本都是全屏截图和程序输入坐标来区域截图,没办法用鼠标选择可视

JavaScript写一个小乌龟推箱子游戏

推箱子游戏是老游戏了, 网上有各种各样的版本, 说下推箱子游戏的简单实现,以及我找到的一些参考视频和实例: 推箱子游戏的在线DEMO : 打开 如下是效果图: 这个拖箱子游戏做了移动端的适配, 我使用了zepto的touch模块, 通过手指滑动屏幕就可以控制乌龟走不同的方向: 因为推箱子这个游戏比较简单, 直接用了过程式的方式写代码, 模块也就是两个View 和 Model, 剩下就是用户的事件Controller, 用户每一次按下键盘的方向键都会改变数据模型的数据,然后重新生成游戏的静态htm

python------用python写一个猜数字的游戏

这样一个小游戏,我们用shell也是可以完成的,但是这里我们主要是练习python!具体的要求及shell的写法http://zidingyi.blog.51cto.com/10735263/1767566! #!/usr/bin/env python # coding=utf8                 /定义字符集,主要是为了打印出汉字 print ("-------------猜数字游戏----------------") import random tmp = rando

如果写一个点击view带动画的下滑展开显示隐藏内容的控件

原理是在onMeasure中得到隐藏内容的高度,点击这个view的时候对隐藏的view startAnimation,让它的高度从0增长到onMeasure得到的这个View的measureHeight 具体这样写: public class ExpandableLayout extends LinearLayout { private Context mContext; private LinearLayout mHandleView; private RelativeLayout mCont

写一个三子棋小游戏的感悟

在写之前,我已经把函数的结构设计出来,主要由以下几个函数实现: 1:初始化棋框 2:玩家下棋 3:电脑下棋 4:判断胜负 5:更新棋框 6:主函数 在写的过程中碰到了不能将玩家下的位置放入棋框中,原因是在函数定义过程中没有将二维数组引入, 导致棋框更新不正确,在函数中引用二维数组时,因为c语言编译系统不检查第一维的大小,只要第二维大小相同,形参数组第一维可以与实参不同,因此在函数定义时只需要写int qk(arr[][i]),i为常数,在主函数调用时只需要写qk(arr)即可,因为数组名本身就是