逐帧游戏快速构建指南
1. 抽象用户界面
之前的示例展示了逐帧动画创建的基础,借助 CADisplayLink 类与现有事件循环,可调用任务实现动画。不过,那只是个简单例子,为聚焦逐帧动画的基本思路,省略了不少实际考量。现在,为支持更复杂的游戏,需要进行一些重构。
新示例与首个示例有诸多不同:
- 游戏的游玩区域并非占据整个屏幕。
- 屏幕底部的滑块可改变游玩区域大小,且不影响游戏玩法。
- 屏幕上新增了小行星这一元素,每10秒生成一个,从屏幕顶部垂直下落。若小行星与飞船碰撞,飞船会重置到屏幕中心,小行星则被移除,游戏目标是躲避飞来的小行星。
此部分的一个目标是阐述如何将游戏逻辑与屏幕绘制分离。首个示例中,直接扩展 UIImageView 并添加飞船逻辑,虽可行,但将游戏逻辑与显示分离有诸多好处:
- 若要在iPad而非iPhone上运行游戏,可能需增大游玩区域。
- 为支持游戏缩放或显示小地图,以与显示无关的方式存储游戏中各元素的位置很有必要。
- 未来可能要将游戏移植到其他平台,清晰分离游戏逻辑与显示逻辑能节省大量工作。
为实现游戏逻辑与显示逻辑的抽象,引入了 Actor02 类。该类通常可简称为 Actor ,名称中的 02 表明它是本示例的一部分。
2. 理解角色(Actors)
角色是游戏中的移动元素,如本示例中的飞船和小行星。这与游戏中的其他元素(如显示分数的标签等)不同。角色有时也被称为精灵(sp
超级会员免费看
订阅专栏 解锁全文
44

被折叠的 条评论
为什么被折叠?



