事件
首先,在画布区域上方的选项卡上切换到Event sheet1事件编辑器面板,一个列表的事件被成为Event sheet事件表。游戏的不同部分可以拥有不同的事件表,事件表同样可以"include"包含即导入(编程里的概念,不懂就无视吧)其他事件表,这样可以重复利用事件表,目前我们不需要这些功能。
关于事件
Construct 2整个系统运作是基于事件系统,大多数显示器帧频为60帧/秒,为了匹配显示器达到平滑的显示效果,Construct 2也设置了差不多帧速率。所以事件表通常是一秒钟运行60次。每次都会更新屏幕相应发生变化的区域。事件表运行时的顺序为从上往下,所以靠上的事件先运行。
条件、动作、子事件
事件包含条件,测试某些条件是否满足,例如,Is spacebar down?(检测空格键是否按下)。如果条件满足了,那么事件的动作将会运行,例如,Create a bullet object创建一个子弹实例。当动作运行后,任何子事件也会运行,这样可以测试更多条件,运行更多的动作和更多的子事件等。使用该系统,我们可以为游戏或程序创建更多负责的功能。本例中,我们不需要该功能。
简述如下:
Are all conditions met? //条件是否都满足?
--->yes:run all the event's actions。 //是:运行所有事件的动作
--->no:go to next event(not including any sub-event) //否:往下运行下个事件,这里没有运用(包含)子事件
我们来创建第一个事件
我们将使player(发射口)一直看向鼠标,这样我们点击发射子弹的时候,子弹将发往鼠标方向。如下:
记住:每次屏幕被重绘的时候,tick(一个内部循环中,每秒几帧屏幕重绘,百度一下吧,囧)将会运行(tick下的事件都会运行一次)。所以如果我们强制player每帧都朝向鼠标,那么player将一直朝向鼠标。
我们开始制作该事件。在event sheet的空白位置双击,将打开添加事件对话框:
不同的对象根据他们要做的行为拥有不同的条件和动作,在对话框中双击System对象,对话框中列出了所有System对象的条件:
双击Every tick条件插入到事件表中。对话框将关闭,Every tick事件被创建,但没有actions(动作)。如下:
接着我们添加一个动作来使角色看向鼠标。点击event右边的Add action链接,打开对话框如下:
对话框中列出了可以添加动作的对象,双击player对象,对话框列出了player对象可添加的动作如下:
选取Set angle towards position动作。该动作会自动计算角色到给定的X,Y坐标的角度。
接下来要指定X,Y坐标值(动作的参数,条件同样可以带有参数)。我们输入Mouse.X和Mouse.Y(也可以输入表达式如:Mouse.X+100,虽然用的并不多)
此时,你运行就可以看到效果了。
如果提示错误:Mouse is not any object name,确保你已添加了Mouse object鼠标对象!
你可能会担心如何记住所有可用的表达式。别担心,浮动在上边的object panel,默认处于半透明状态不会干扰你的注意力。移动鼠标到该面板上,单击,面板变完全可见。该面板起着字典的功能,可以帮你记住各类你可以使用的表达式。你可以双击表达式来插入,省的手动输入。
还有,点击对话框上的Done确定按钮。该动作就被添加了!如下:
第一个事件添加完毕!尝试运行游戏,角色在移动的时候一直朝下鼠标。