如何将一个对象“升级”为一个家族

60次阅读
没有评论

共计 1320 个字符,预计需要花费 4 分钟才能阅读完成。

如何将一个对象“升级”为一个家族

在制作项目时,总是需要提前规划,确定何时需要一个 家族。然而,很容易忘记这一点,最终会用到大量的特定对象类型的事件,而你可能更希望所有这些事件都是针对一个家族的。本教程将向您展示如何将这些事件转换为引用家族,同时保留对实例变量或行为的任何引用,而不需要手动重新做所有事件。

举个例子

假设我们有一个名为 Monster 的对象,我们想将其替换为一个名为 Enemies 的家族,以便我们可以轻松添加不同种类的敌人……但我们已经有 100 个针对 Monster 的事件!以下是如何将其“升级”为家族的方法。

备份

本教程涉及更改项目的很大部分。如果你犯了一个错误,你可能会陷入混乱。所以请务必首先备份你的项目。

操作步骤

首先,我们需要创建一个用于替换的家族。我们无法创建一个空的家族,所以实际上我们首先需要 创建一个 临时使用的 空对象。在这个例子中,创建一个新的精灵并将其添加到布局中(不需要担心它的图像,我们稍后会删除它)。如果你要替换的是不同类型的对象,比如文本对象或平铺背景,就创建一个那样的对象。

接下来,创建家族 。在这个例子中,我们将其称为 Enemies。当提示你向家族中添加一个对象时(因为它不能为空), 添加你刚刚创建的空对象,然后按下 OK。

现在我们需要 将对象具有的所有实例变量、行为和效果添加到家族中。对象只能被替换为具有匹配的实例变量、行为和效果的其他对象或家族,所以我们需要向家族中添加匹配的内容。它们必须有相同的名称。例如,如果 Monster 有数字实例变量 health 和 speed,以及名为 Bullet 的子弹行为,我们必须向 Enemies 家族中添加 health 和 speed 数字实例变量,以及 Bullet 行为。

现在事件可以被替换为引用家族!在事件表中,选择全部Ctrl + A),然后按下R(代表替换对象)。首先选择你想要替换的对象(在这个例子中是 Monster),然后你可以选择用新的家族替换它。如果家族没有出现,或者出现一条消息说没有可以替换的对象,请仔细检查家族是否具有完全相同的实例变量、行为和效果,且名称和类型都相同。如果你有多个事件表中有引用该对象的事件,你还需要为每个事件表重复这个过程,选择所有事件,然后用家族替换对象。

现在你的事件引用的是家族!但是原始对象 Monster 不在家族中。我们暂时也不能添加它,因为它的实例变量和行为与家族的冲突。

所以现在 从原始对象中删除所有实例变量、行为和效果。尽量不要感到紧张——到现在为止,应该没有任何事件引用该对象,因为我们已经用家族替换了它们。(而且你之前做了备份……对吧?)

在项目栏中,编辑新的家族并将对象添加到家族中 。在这个例子中,我们会将 Monster 对象添加到 Enemies 家族中。如果你遇到错误,请确保你已经从对象中删除了所有实例变量、行为和效果。我们也不再需要临时对象,所以你可以 从家族中移除临时对象 ,然后从项目栏中 完全删除它

最终结果

现在你所有的事件都引用的是家族而不是对象,并且对象继承了家族的所有实例变量、行为和效果。所以它的工作方式与之前完全相同,但现在你可以 向家族中添加其他对象,利用家族事件应用于不同对象类型的优势。希望这一点在某个时候能派上用场!

正文完
 0
评论(没有评论)