10、逐帧游戏快速构建指南

逐帧游戏快速构建指南

1. 抽象用户界面

之前的示例展示了逐帧动画创建的基础,借助 CADisplayLink 类与现有事件循环,可调用任务实现动画。不过,那只是个简单例子,为聚焦逐帧动画的基本思路,省略了不少实际考量。现在,为支持更复杂的游戏,需要进行一些重构。

新示例与首个示例有诸多不同:
- 游戏的游玩区域并非占据整个屏幕。
- 屏幕底部的滑块可改变游玩区域大小,且不影响游戏玩法。
- 屏幕上新增了小行星这一元素,每10秒生成一个,从屏幕顶部垂直下落。若小行星与飞船碰撞,飞船会重置到屏幕中心,小行星则被移除,游戏目标是躲避飞来的小行星。

此部分的一个目标是阐述如何将游戏逻辑与屏幕绘制分离。首个示例中,直接扩展 UIImageView 并添加飞船逻辑,虽可行,但将游戏逻辑与显示分离有诸多好处:
- 若要在iPad而非iPhone上运行游戏,可能需增大游玩区域。
- 为支持游戏缩放或显示小地图,以与显示无关的方式存储游戏中各元素的位置很有必要。
- 未来可能要将游戏移植到其他平台,清晰分离游戏逻辑与显示逻辑能节省大量工作。

为实现游戏逻辑与显示逻辑的抽象,引入了 Actor02 类。该类通常可简称为 Actor ,名称中的 02 表明它是本示例的一部分。

2. 理解角色(Actors)

角色是游戏中的移动元素,如本示例中的飞船和小行星。这与游戏中的其他元素(如显示分数的标签等)不同。角色有时也被称为精灵(sp

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值