添加事件

接下来我们使用唤境Evkworld的可视化编程方法:事件系统,来添加我们项目的游戏逻辑。

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

设置玩家面向角度对着鼠标位置

玩家面向角度永远是对着我们的鼠标位置。点击“+事件”按钮,添加一条新的事件。

设置条件,选中事件表上方系统按钮或在抽象对象库选中系统,右方切换系统(条件与动作框),双击选择“每帧执行”条件。

设置动作,在舞台选中玩家或对象库选中玩家,右方切换玩家(条件与动作框),双击选择“按位置设置角度”动作。X设置鼠标位置.x,Y设置鼠标位置.y。

点击完成编辑,这样我们第一个逻辑事件就完成了,我们来预览看一下,玩家的面向方向会根据我们鼠标的位置发生改变。

设置按下鼠标左键玩家发射子弹

当我们按下鼠标左键的时候,玩家会发射子弹。点击“+事件”按钮,添加一条新的事件。

设置条件,当鼠标左键按住时,每0.1秒玩家发射一颗子弹,选择事件表上方的鼠标操作或在抽象对象库选择鼠标操作,右方切换到鼠标操作(条件与动作框),双击选择“按住时”条件。鼠标按键选择左。

设置组合条件,选择事件表上方的系统或在抽象对象库选择系统,右方切换到系统(条件与动作框),双击选择“每隔X秒”条件,间隔时间设置0.1秒。

设置动作,在玩家所在的位置创建子弹,在舞台选中玩家或对象库选中玩家,双击选择“生成其他对象”动作。对象选择玩家子弹,图层组设置“角色”,定位点我们先设置0.

这时候我们预览看一下,当我们鼠标左键按住时,子弹就会生成并且发射出去,但是子弹生成的点位置不对,是从玩家的头上生成的子弹,而正确的生成位置应该是在玩家图片的枪口上。

这是因为我们在上面一条“生成其他对象”的动作中,定位点设置为0(0即玩家的原点位置,默认是精灵对象的中心原点),所以我们需要到玩家精灵的图片编辑器中设置一个绑定点在枪口的位置。在对象库中双击玩家精灵进入玩家精灵图片编辑器。

点击设置绑定点,在玩家图片的枪口位置双击,新增一个绑定点,并设置绑定点名称为“发射位置”。(这里设置的名字会用于下方事件)

点击确认,新的绑定点就设置成功了,然后我们双击玩家子弹生成的事件,设置定位点为“发射位置”。

这时候我们在预览一下,当我们按下鼠标左键发射子弹时,就是从玩家枪口(即我们设置的发射位置点)发射子弹了。

但是我们发现,当玩家子弹碰撞到怪物的时候,并没有发生任何的事情,这是因为我们还没有设置玩家子弹碰撞怪物的事件逻辑,接下来我们就制作玩家子弹与怪物碰撞的事件。

玩家子弹与怪物碰撞后消灭怪物

点击“+事件”,添加一条新事件。

设置条件,在舞台上选择玩家子弹或对象库选择玩家子弹,右方切换玩家子弹(条件与动作框),双击选择“与其他对象碰撞时”条件,对象选择怪物。

设置动作,在子弹与怪物碰撞位置创建爆炸效果并销毁怪物和玩家子弹。1:选择玩家子弹,右方切换玩家子弹(条件与动作框),双击选择“生成其他对象”,对象选择爆炸效果,图层组设置角色,定位点设置0。2:选择玩家子弹,双击选择“销毁”动作。3:选择怪物,右方切换怪物(条件与动作框),双击选择 “销毁”动作。

整个俯角射击游戏的基本逻辑已经制作好了,但是为了让游戏更有趣,我们还可以优化一下怪物AI,让游戏更加有趣。请看下节,添加AI~