事件

想进一步了解事件机制可参看下面的视频~

在这一篇教程里,我们将学习事件表和事件的基本概念。

编辑器每一帧会检测一次事件表里的所有事件,然后选中所有条件符合当前游戏状态的事件,执行该条事件的动作;然后更新游戏状态(包括内部逻辑及屏幕表现)。事件表的执行顺序是从上到下,所以最上面的事件会优先执行。

如何添加事件

点击事件表上方“+事件”,即可创建一条新事件。选中事件,在对象库或舞台上选中对象右方显示对应的条件与动作库,双击选择需要的条件和动作,设置条件与动作的参数。

接下来我们先看下面这条事件。

事件由两大部分组合,左边部分是条件,右边部分是动作。事件工作原理是标记满足条件的实例,然后仅针对标记的实例执行动作。

上面示例事件的条件是当玩家子弹与怪物碰撞时,那么在游戏中碰撞的玩家子弹和怪物的实例将会被标记,动作只会在被标记的实例上执行销毁动作。如果游戏中还有其他的怪物或者玩家子弹的实例则不会执行销毁动作。即如果实例满足所有条件,则对满足条件的实例执行动作。

与条件

我们先看下面这条事件。

这条事件的运行方式如下:
首先标记所有在场景外的怪物。然后从标记的怪物中筛选实例变量血量小于5的怪物进行标记。然后让标记的怪物(在场景外并且血量小于5的怪物)执行更改角度的动作朝向玩家当前坐标。若怪物都不在场景外或怪物的血量都大于5,则此事件不会被执行,因为没有满足条件的实例。

未引用对象

我们先看下面这条条件。

这条事件的条件是当按下空格键时,动作销毁怪物。在这条事件中没有选择怪物的条件,在这种情况下,所有怪物实例都会执行销毁动作。即如果事件条件没有引用对象,则动作将被此对象所有实例执行。

标记在两个事件间重置,在一条事件结束后,另一条事件开始时,将会重新根据条件标记实例。但子事件会从父事件标记中的实例继续进行筛选如下图事件所示。

这条事件中,父事件标记了场景外的怪物,在父事件下有两条子事件,这两条子事件将会从父事件标记的实例中继续筛选满足子事件条件的实例进行标记。

或条件

如前所述,必须满足所有条件才能执行动作。这被称为“与条件”,因为“条件1和条件2和条件3 …”等必须为真。我们可以在任何条件为真时执行动作。这称为“或条件”,因为如果“条件1或条件2或条件3 …”为真,则执行动作。
如下图所示,即为或条件。

选中对应事件右键选择或/与操作,即可以把条件转成或条件。

以上就是事件表与事件的基础介绍。