添加行为
Behaviors类似于flash中的行为(动作),是预先封装的功能函数。例如,我们添加一个Platform行为给一个对象,添加Solid行为给地板,游戏运行时,该对象就可以象platformer游戏(例如:超级玛丽)中的角色一样跳来跳去。你也可以通过事件来达到同样的效果,但是这需要较长的时间,而且该预置的行为已经很好。
Construct2具有以下行为:
8 Direction movement: 这个行为可以让你实现给角色添加方向移动(方向键)的功能。
Bullet movement:这个行为让对象朝着它当前的角度移动,比如,本例中玩家射出的子弹的移动行为,不要被这名字迷惑了,它不只适用于子弹,也可以应用于怪物等移动。在Contruct2里所有的移动行为都是通过添加速度向前行进。
Scroll to:这个行为可以让运行时画布随着对象移来移去(滚动)。这个行为很适合于角色。
Bound to layout:这个行为可以防止对象离开画布区域。这个行为对于角色来说也很重要。
Destroy outside layout:当对象离开画布区域时,就将其销毁。比如本例中的子弹,如果不销毁的话,虽然子弹离开画布区域了,但是依然暂用内存。所以我们需要及时销毁不再需要的对象。
Fade:这个行为可以给对象添加淡出效果,用于爆炸等特效的消失。
接下来我们就来给对象添加相应的行为。
如何增加行为
我们给角色player添加8 direction movement行为:选中player,在properties bar属性面板里,找到Behaviors分类,点击Add/Edit弹出Behaviors行为对话框。
在对话框中,点击绿色+号-添加行为图标,在弹出的“Add behavior”对话框中双击8 direction movement。
接着以同样的方法给player添加Scroll To和Bound to layout行为,此时"player:Behaviors"对话框如下:
关闭行为对话框。点击运行查看游戏!此时我们已经可以移动角色,屏幕也跟随角色移动,而且通过设置Bound to layout行为后,角色也不能移出画布区域。
希望你安装了兼容HTML5的插件,另外,请确保你是使用最新版的火狐,Chrome,或是 Ie9。一旦你的游戏运行后,请确保你可以用方向键移动玩家,而且银幕会随着玩家移动! 而且你不能使玩家走出画布。
添加其他行为
我们以同样的方法给其他对象添加相应的行为如下:
-给Bullet对象添加Bullet movement和Destroy outside layout行为。
-给Monster对象添加Bullet movement行为。
-给Explosion对象添加Fade行为。Fade行为默认会销毁对象,所以不用担心对象有没有销毁。
此时,我们再运行查看游戏,会发现怪物一下子就飞出去了。我们来编辑下怪物的行为,选中Monster怪物对象。看到properties bar属性面板中,我们会发现属性栏里多出了其他一些属性,这些属性是添加了行为后才有的。
更改speed速度为80(单位:像素/秒)
同样的方法给Bullet子弹对象的速度更改为400,Explosion对象的Fade行为的Fade out time淡出时间为0.5秒。
添加更多怪物
按住CTRL,拖拽Monster对象复制几个实例。他们都是Monster对象类型的。
对象类型可认为是对象的类(学过编程的知道,没学也没事)。在事件系统中,我们主要处理的就是对象类型。例如:你创建了一个Bullet collides with Monster事件,将会检测子弹与所有基于Monster对象类型的实例的碰撞,而不需要单独为每个怪物添加碰撞事件。通过Sprites(精灵/元件),一个对象类型的实例将共享同一个图片(纹理材质)。这样游戏在加载的时候只需加载一次该图片即可。我们在以后的课程中再深入对象类型和实例。目前,就可以认为不同类型的敌人是不同类型的对象类型。游戏中运行时创建的怪物对象都是相应对象类型的实例。(学过编程的都知道,本不想翻译这段话的,想想还是翻了,不必太纠结这个)
使用Ctrl +拖拽 创建7到8个新的怪物实例(为了区分下,往下我们用实例来表述)。放置怪物的时候不要太靠近玩家。否则角色一下子就挂了!此时你的画布类似如下:
接下来我们将通过Construct2的可视化编程——事件系统,添加自定义功能函数。