接下来我们使用唤境Evkworld的可视化编程方法 - 事件系统来添加我们的自定义功能。
下面先简单介绍一下事件表,唤境Evkworld引擎会每一帧循环一次事件表里面所有的事件,然后根据事件表中是否符合每一条事件的条件,执行事件动作,然后显示在屏幕上。事件表的执行顺序是从上到下,最上面的事件会优先执行。
设置物理引擎中使用的速度循环数和位置循环数。默认值分别为8和3。较低的值运行得更快但准确度较低,较高的值可能会降低性能,但会提供更逼真的模拟。
首先点击“+事件”按钮,添加一条新的事件。
设置条件,选中条件动作左侧的系统组件,选择“场景开始时”条件。
设置动作,在舞台或对象库选中飞猪,右方切换飞猪(条件与动作框),双击选择“设置步进循环数”动作。速度循环数设置12,位置循环数设置8.
先新建一个全局变量瞄准,类型设置为数字,初始值设置为1.
双击修改名字和初始值
添加一条新事件,设置当全局变量瞄准等于1时,设置飞猪的位置为发射台的位置,并且将视角设置在发射台上。
接下来制作触屏时,飞猪旋转并且移动的效果。
添加子事件,当正在触摸屏幕时,根据触摸屏幕的位置设置飞猪的角度
设置角度动作,角度为触屏位置和发射台之间的角度,使用angle()函数,angle(触屏操作.x,触屏操作.y,发射台.x,发射台.y)
触摸时候,飞猪除了旋转以外,还会朝着触屏位置移动一小段距离,这需要使用动作朝某角度移动
我们设置他移动不超过45的距离,角度:飞猪.angle+180,距离:min(distance(触屏操作.x,触屏操作.y,发射台.x,发射台.y)/3,45)。
这样就实现了,触屏的时候,飞猪跟着触屏移动并且旋转。
在添加子事件,当结束触摸屏幕时,设置全局变量瞄准为0.在飞猪的原点施加一个冲力(冲力:distance(self.x,self.y,发射台.x,发射台.y)/4.5,角度:飞猪.angle)
整个事件设置如下图所示。
添加一条新的事件,设置当全局变量等于0时,将视角设置在飞猪上。
这时候我们预览一下啊,当我们触摸屏幕时候,飞猪就会根据我们触屏的位置,设置飞猪的角度的位置,当松开屏幕时,飞猪就会根据当前的位置的角度设置一个弹射的冲力让飞猪飞出去了,舞台的视角根据飞猪的位置移动。
这样简单的愤怒飞猪就完成了。