《《iPhone游戏编程实例》.pdf
文本预览下载声明
Jamie Gotch:
Fieldrunners底层技术
我对视频游戏的兴趣可以一直追溯到Commodore 64 年代,那时它只有4
位颜色和64KB 的内存。我可不算幸运,在任天堂游戏机 (Nintendo Entertain-
ment System )鼎盛时期不能像我的大多数朋友那样拥有它,不过可能幸亏如
此。拥有一个计算机为我带来了更多的机会和可能。随着对视频游戏的兴趣日
益增长,我开始开发自己的游戏。Commodore 64 使我能够做到这一点。开始
学习编程之后不久,我就开始创建自己的游戏,而接下来的事情已成历史就不
用多说了。我的整个学术生涯主要关注于学习编程艺术和提高数学水平,希望
有朝一日可以创建我自己的游戏——这就是Fieldrunners 。
投入 Xcode 和 Objective-C
最初开始开发Fieldrunners 时,有关iPhone 开发的一切 (Xcode、Obj ec-
tive-C,甚至使用OS X )对我来说都是全新的。那时,我的开发经验主要是在
Windows 上编写C++ 代码。之前我也曾涉足过其他一些语言和平台,不过从
来不需要也没有渴求在Macintosh 平台上或者为这个平台编写代码,我的意思
是说,这种情况一直持续到iPhone SDK 的发布。
起初,我还有些迟疑,我知道,如果转向这样一个平台,在我对
Obj ective-C 熟练到可以高效率地完成开发之前,可能要花费很多时间和精力。
不过,我也知道,对于我心中所想的Fieldrunners (一个快节奏的塔防游戏),
iPhone 再合适不过了。
因此,我毅然决然地投入其中,开始学习创建一个iPhone 游戏需要的一
切知识。我很快惊讶地发现,所有一切使用起来都那么容易,从操作系统到
Xcode,甚至Obj ective-C 。当然,我也必须克服一些挑战,正是这些困难促使
我写下这一章,希望能帮助你避免我曾经犯过的错误。
从哪里开始呢
从头创建一个游戏可能相当困难。你早先做出的很多决策都可能会对最
1
2 Jamie Gotch :Fieldrunners底层技术
终产品产生巨大影响。因此,在具体编写代码之前先创建大致的行动计划非常重要。为了创建
这个计划,需要明确要创建什么类型的游戏并确定自身需求。
确定需求
游戏形状各异,大小不同。特别是休闲型游戏,它的需求跨度更广。例如,牌类游戏通常
不需要以很高的帧速率绘制屏幕,也不需要同时播放多种音效。首先了解应用需求,从长期来
讲可以节省大量时间,也可以为你免去很多麻烦。下面这些问题可以帮助你确定游戏的具体需
求。
■ 你的游戏非常依赖于3D 图形吗?它是基于sprite 还是使用简单的2D 形状?
■ 你的游戏需要很多同时在屏幕上不断移动的图形元素吗?或者,是不是同时只有一个或
两个移动的图形,而其余的图形元素大多数情况下都只是原地不动?
■ 你的游戏同时使用多种音效 (比如,爆炸、开火、尖叫)吗?或者,只是每隔几秒才播
放一次声音?
你的具体需要可以指示图形和声音编程将使用的技术。
OpenGL ES 与Quartz
很多人开始开发游戏时问我最多的一个问题就是,到底使用OpenGL 还是Quartz 。
■ Quartz 更易于使用,因为它的大多数概念都来自高中几何。与之不同,OpenGL 编程使
用了一些更复杂的概念,如矩阵和向量。
■ Quartz 对于不需要以高帧速率重绘屏幕和只需要2D 图形的应用非常适用。OpenGL 设
计时则特别考虑了3D 图形。iPhone GPU 支持堪与Sony PS2 和PSP 媲美的高速图形。
■ Quartz 使用的电池电量要少于OpenGL ,因为OpenGL 更多地使用了iPhone GPU.
OpenAL、AVFoundation 与CoreAudio
类似地,谈到声音和音乐播放时,也有很多选择,包括OpenAL 、AVFoundation 和
CoreAudio
显示全部