遵循一定的原则可以保证开发顺利进行,最大程度避免意外情况的发生。根据我以往的经验,如果不提前想好运用什么技术?怎么组合这些技术?临时抱佛脚,刷网页搜信息将会耗费掉很多精力。

这篇指南会告诉你什么时候该走哪一步,用苹果的原生游戏引擎 SpriteKit,让游戏从创意转变为现实。

1. 创建一个 Project

有了一个游戏创意之后,第一步是立刻用苹果的开发 IDE——Xcode,创建一个游戏 Project。为苹果设备开发 App,为什么非得用 Xcode 呢?因为它更简单,更省事,更方便。

2. 设立 Workspace

在 Xcode 里,Workspace 要求有逻辑体系(logistics),一些准备工作也必不可少,比如决定游戏在设备上的 orientation,做一些适当的改动——取消选定 portrait 或 landscape view,在 project 文件或 XCODE 编辑器里进行编辑。

3. 添加 Project 资源

Project 资源即图像音频文件或其他要添加到 project 里的外部文件。简单拖放进 project 导航器就可以了。

4. 改变背景颜色

这一步才真正是好戏开场。要改变背景颜色的话就得多写几行代码,保证运转高效进行,程序员也更有动力继续工作。

这一步看似不起眼,做好了却能大大提升开发者的积极性,让他们更加相信自己有能力为 Project 带来积极的影响。

5. 为背景添加 Sprite

从 asset 或图像文件夹里获取图片,添加为游戏背景。了解了如何添加以及安置背景 sprite 的位置后,就能为游戏场景添加 sprite 了。

6. 添加游戏 Sprite

添加了背景 sprite 后,同时添加 in-game sprites,也是不错的想法。

游戏内置 sprite 也会帮忙节省不少时间,让你安安心心把注意力放在游戏逻辑上。

7. 添加玩家控制的 Sprite

添加游戏 sprite 时,你说不定已经加上了玩家控制的 sprite,这一招挺受用的。将两者分开来操作主要是考虑到多数情况下,玩家控制的 sprite 按照我们的意愿执行一个行为或位置时,可能跟游戏内置的其他 sprite 有所不同。


添加游戏逻辑

创建了自己的游戏 asset 之后,就开始为游戏添加逻辑了。在这篇指南中,我们会用到很多 iOS 游戏喜欢用的“拖放”机制。

执行游戏逻辑时,须采用“分而治之”的方法,也就是将过程分割成最小单位,分别编写代码。

8. “拖放”Sprite——“拖”

I 为玩家 sprite 执行“拖动”机制,要用到 touchesBegan 功能,该功能现已适用于苹果产品。这个动作只需要轻点屏幕即可引发。

9. “拖放”Sprite——“放”

这一步会用到 touchesMoved 和 touchesEnded 功能,判断手指什么时候移开屏幕。

这部分我们创建菜单屏幕,按键还有游戏所需的用户界面工具。

10. 创建主菜单(setUp)

要创建主菜单屏幕,也就是 scene(场景)或一个 SKNode,要求有 Cocoa Touch 文件。在这篇指南里,我们用 scene。

11. 调用主菜单

创建主菜单后,要调用主菜单,才能开始运作。游戏启动后,应立刻调用主菜单,作为游戏中出现的第一个场景。

12.  添加背景 Sprite

这一步跟添加游戏场景背景 sprite 是一样的。

13. 触摸开始游戏

主菜单加载后,游戏要真正开始,只要给屏幕添加一个触摸功能就好。触摸的动作检测到之后,调用加载游戏场景,然后游戏开始运行直到结束。

14. 返回主菜单按钮

玩家如何从游戏场景返回主菜单呢?方法是重复第 13 步的 touch 方法,但这次我们用 sprite 做按键,玩家按下按键之后,就能返回主菜单。

15. 场景转换

动画让游戏更引人入胜,可谓锦上添花。虽然跟游戏内容没太大关系,但能大大提升游戏体验。

16. 添加一个 Play 按键

游戏完成之后,用 Sprite 添加一个 Play 按键,很简单。按下 Play 键,就能开始游戏了。


App Store 上有更多游戏逻辑和游戏 Demo

我曾开发了一个名为 Piggie Penny Pincher 的 iOS 游戏,App Store 上有,接下来,我将和大家分享我在开发该游戏时用到的一些解决方案。


让游戏动起来

18. 动画&特效

是时候添加动画和特效了,好让游戏看起来更生动一些。

运用动画制作 12 条准则的任何一条,都会使你的动画更为生动。而最简单常用的是“挤压与拉伸(Squash and Stretch)”,让游戏体验更上一层楼。

19. 音乐和音效

最后可以为游戏添加音乐和音效了,虽然并非或不可缺,但能让你的游戏更加引人入胜。

余下全文(1/3)

本文最初发表在CSDN,文章内容属作者个人观点,不代表本站立场。

分享这篇文章:

请关注我们:

发表评论

邮箱地址不会被公开。 必填项已用*标注