开发者经验谈:如何一天时间搞定iOS游戏开发?
遵循一定的原则可以保证开发顺利进行,最大程度避免意外情况的发生。根据我以往的经验,如果不提前想好运用什么技术?怎么组合这些技术?临时抱佛脚,刷网页搜信息将会耗费掉很多精力。
这篇指南会告诉你什么时候该走哪一步,用苹果的原生游戏引擎 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. 音乐和音效
最后可以为游戏添加音乐和音效了,虽然并非或不可缺,但能让你的游戏更加引人入胜。
本文文字及图片出自 CSDN
你也许感兴趣的:
- 14 个 Python 高级功能
- 使用 Rust 真的能让软件更安全吗?
- 我是如何破解房东的锅炉的
- Python 的新 t-strings
- OpenAI 为什么要收购 Windsurf?
- 两年的 Rust 使用感悟
- 微软:Node.js 越来越多地被用于恶意软件分发和数据窃取
- 为什么没有像 BitTorrent 这样的 P2P 流媒体协议?
- Python 异步编程的 9 个级别
- Oracle:为后量子密码学做准备
你对本文的反应是: