HTML5 2D 游戏开发 实现 Sprite 行为(1)
 
- UID
- 1066743
|

HTML5 2D 游戏开发 实现 Sprite 行为(1)
优秀的故事离不开优秀的人物角色。就像图书和电影一样,视频游戏也需要具有有趣行为的人物角色。例如,Braid(一直是最畅销的平台游戏)中的主角可操纵时间。精巧的行为使该游戏脱颖而出。
行为是任何视频游戏的灵魂,将行为添加到 中为 Snail Bait 实现的惰性 sprite 中,就会立刻使该游戏变得更加有趣,如图 1 所示:
图 1. 完成本文后 Snail Bait 的状态 回想一下前一篇文章中的 一节,Snail Bait 的 sprite 没有实现自己的活动,比如跑、跳或发怒。相反,sprite 依靠其他对象(称为行为)来控制操作。
显示了蜗牛射出蜗牛炸弹的行为。其他无法在 的静态图像中看到的行为包括:
- 跑步小人跑动
- 纽扣在平台上来回移动
- 红宝石和蓝宝石闪耀光芒
表 1 总结了这些行为:
表 1. 本文中讨论的行为Sprite行为说明纽扣和蜗牛paceBehavior在一个平台中来回移动跑步小人runBehavior循环跑步小人的图像,看起来像是跑步小人正在跑动蜗牛snailShootBehavior从蜗牛的口中射出一个蜗牛炸弹蜗牛cycleBehavior循环显示一个 sprite 的图像蜗牛炸弹snailBombMoveBehavior在画布显示范围中水平地将蜗牛炸弹向左移动
操作时间在 Braid 中,主角 Tim 可以操纵时间,但每个视频游戏都擅长操纵时间。在本文中,您会看到潜在的时间流动行为。在本系列接下来的两篇文章中,我将介绍如何通过让时间弯曲来实现非线性运动,这是跑动和跳跃等真实运动的基本特征。
表 1 中列出的行为不足该游戏行为的一半,在本系列第一篇文章中的 表中,可以看到全部行为。它们也是 sprite 的行为基础;举例而言,跳跃要复杂得多,您将在以后的文章中看到。尽管如此,对于本文中的简单行为的实现,仍有许多要学习的地方,包括如何:
- 实现行为并将它们分配给 sprite
- 循环显示一个 sprite 的一系列图像
- 创建轻量级行为以节省内存消耗
- 组合行为
- 使用行为发射炮弹
行为基础Replica Island 的行为行为的概念来自一个流行的开源 Android 游戏 Replica Island。Snail Bait 的许多图形也来自 Replica Island。请参阅 ,获得该游戏以及该游戏的创建者探讨行为的博客帖子的链接。
任何对象都可以是一个行为,只要它拥有一个 execute() 方法。该方法接受 3 个参数:sprite、时间和游戏动画的帧率。行为的 execute() 方法依据时间和动画帧率来修改 sprite 的状态。
行为很强大,因为:
- 它们将 sprite 与其行为分离开来。
- 可在运行时更改 sprite 行为。
- 可实现用于任何 sprite 的行为。
- 无状态行为可用作 。
在讨论 中列出的行为在实现之前,我将通过跑步小人的总体行为大致概括一下 — 如何实现它们并将它们与 sprite 相关联。 |
|
|
|
|
|