Construct2 初学入门教程

4

Index

Tagged

Contributors

Stats

152,219 visits, 189,318 views

Tools

Translations

License

This tutorial is licensed under CC BY 4.0. Please refer to the license text if you wish to reuse, share or remix the content contained within this tutorial.

Published on 2 Dec, 2014. Last updated 25 Feb, 2019

添加游戏功能

通过上边的学习,我们已经学会了添加事件,教程到这,已经很长了,我们会发现教程看起来很啰嗦,太细,做起来一下子就完了,所以接下来我们稍微简化下。记住添加条件或动作的步骤如下:

1、双击添加新事件,点击Add action链接添加一个动作。

2、在对话框中双击要添加条件/动作的对象

3、选取要添加的条件/动作

4、如果有需要的话,输入参数

接下来教程中以下面的格式来表述:

Add condition System -> Every tick

Add action Player -> Set angle towards position -> X: Mouse.X,Y: Mouse.Y

让角色可以射击

当玩家点击的时候,可以发射子弹。这可以通过Spawn an object动作来实现,该动作在同样的位置和角度(相对于角色)创建新的对象实例。子弹的Bullet movement属性将会使它向前飞出。制作如下事件:

条件:Mouse->On click->Left clicked(the default) //鼠标->点击->左击(默认)

动作:Player->Spawn another object->For Object,choose the Bullet //Play对象->产生另外的对象->对象,选择子弹层,输入1(“Main”图层),Image point(子弹的发射起点)保持默认为0。如下:

如果你运行游戏,你将看到子弹从角色图片的中心发出,并不是从枪口发出。我们来修改下,在工程或对象面板中右击player对象选择Edit animations编辑动画。

在弹出的图片编辑器中,选择Set origin and image points工具

看到image points对话框,对象的原点以红点显示

这是对象的原点(如果你旋转对象,将绕着这个点),点击绿色的+号按钮添加一个点,该点以蓝点显示。我们在角色图片枪口位置处左击,将该点放置于枪口位置:

关闭图片编辑器,双击事件表中早前添加的Spawn an object动作,更改Image point为1.在面板中可以看到序号的,默认的原点为0,其他添加的一次1,2。。。等。如下:

运行游戏。此时子弹已经修改为从枪口发射。此时,子弹没有做其他任何事。接下来我们来添加碰撞事件,用来消灭敌人。

添加事件如下:

条件:Bullet->On collision with another object->pick Monster。 //子弹->于其他对象碰撞->选择Monster怪物。

动作:Monster->Destroy //怪物->消灭

动作:Bullet->Spawn another object->Explosion,layer 1 //在图层1 碰撞的位置产生新对象-爆炸特效

动作:Bullet->Destroy //子弹销毁

爆炸特效

运行游戏,尝试射击一个怪物,我们可以看到碰撞发生,爆炸特效也产生了,杯具的是,有个大大的黑色边框,好难看!

不用担心,我们可以去掉黑框,在工程面板或者对象面板点击Explosion object爆炸特效对象。在它的属性面板里设置Effect属性为Additive(叠加,玩过PS的知道,黑色颜色值为0,叠加后就不起作用,就看不到了,具体的去百度下吧)。再次尝试游戏可以看到,完美了

让怪物聪明一点

(添加怪物智能AI,专业说法,囧,本例可没那么高深)

当下怪物只会向右移动。我们来让他们更有趣些。首先让他们产生在随机的位置。

条件:System->On start of Layout //系统->画布启动时

动作:Monster->Set angle->random(360) //怪物->设置角度->0-360随机度数

Condition: System -> On start of Layout

Action: Monster -> Set angle -> random(360)

此时,怪物依然移出画布,再也看不到,接着我们再来修改,让怪物移动边缘处的时候,自动往回移动,并且添加智能,让怪物朝着玩家角色移动(自然是角色没挂的时候)。

条件:Monster->Is outside layout //判断怪物是否要离开画布

动作:Monster->Set angle toward position->For X,Player.X - for Y,Player.Y //设置怪物朝向角色的坐标

再次运行游戏。此时你可以看到怪物在画布里朝着不同的方向移来移去,最终都会朝着角色围过来。这个智能的行为咱们不编程看不到代码(就算编程也太难,囧,要不也不找这软件了哈),将就着看吧,似乎不错了!

此我们的角色还是无敌的,怪物却是太脆落了,子弹一碰就挂了,接着我们通过instance variables实例变量来修改这些。

  • 0 Comments

Want to leave a comment? Login or Register an account!