Construct2 初学入门教程

4

Index

Taggé

Contributeurs

Statistiques

152,725 visites, 190,158 vues

Outils

Partager

Traductions

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

实例变量

Instance variables实例变量允许每个怪物存储它自身的生命值。一个变量简化了说就是一个可以改变的值。他们单独存储,分别带他们相应的实例。

我们来为怪物添加health实例变量。在工程或对象面板选择怪物monster(注意monster的意思就是怪物,本教程翻译的时候好多地方都是这样注释的,因为实际制作中我们是用英文的)。亦或,在画布中选取monster怪物对象。这样属性面板呈现的是怪物的相关属性。在properties bar属性面板的Instance variables分类下点击Add/edit:

弹出实例变量对话框,类似于早前的行为对话框。本对话框允许你为对象添加或修改实例变量。点击绿色+号按钮来添加新变量。

在弹出的对话框中输入变量名health,保持类型为Number(数字型),设置Initial value初始值为5。这使怪物拥有5个生命值。当他们被子弹射到时,生命值减1,直到为0,被消灭。

当我们点击OK确定。变量就出现在实例变量对话框中以及属性面板中,可以通过Add/Edit链接修改。

更改事件

切换到事件表(event sheet记得英文哦,教程中有些地方就写中文了,软件还是英文的,软件是可以汉化,但是太费时间,等心情好再说)中,我们来更改怪物被消灭的事件。

找到事件Bullet-on collision with Monster.现在的动作是destroy monster,右击该动作,选择Replace。

弹出的对话框和新建动作的对话框一样,选择Monster->Subtract from(in the Instance variables catrgory)->Instance variable "health",并输入值1。点击Done确定。该动作呈现如下:

现在我们射击怪物时,当子弹碰到怪物,怪物生命值减1,子弹爆炸消失,但我们得添加一个事件来检测怪物的生命为0时,让它消灭。添加如下事件:

条件:Monster->Compare instance variable->Health,Less or equal,0 //校对实例变量值是否<=0 不要用=0,连射可导致怪物生命值负数。

动作:Monster->Spawn another object->Explosion,layer1 //产生爆炸效果,你可以替换成怪物挂掉的效果

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

运行游戏,尝试射击

显示分数并存档

我们来添加分数显示功能,让玩家知道猎取了多少怪物,获得了多少分数。我们需要另外一个变量,但此时我们熬添加一个全局变量global variable。假设我们的游戏有好几关,全局变量就可以累积分数。全局变量适用于整个游戏,只有一个之存储着。

右击事件表底部,并选择Add global variable。

输入分数变量名Score。其他字段默认即可,点击OK确定。变量将从0开始计数。starting at 0.

现在全局变量呈现在事件表中:

注意:local variable局部变量限制于自身所在事件的作用范围,现在我们不用考虑这个,本例不用。其实很多东西都是参考程序里的,不过无所谓了,无视吧!

接着我们来添加动作,在Monster:health less or equal 0事件里添加动作System->Add to(under Global & local variables)->Score,value 1.如下:

现在玩家就拥有分数了,每当怪物被杀掉,就可以增加1分,但现在我们运行游戏依然看不到分数,我们需要一个文本对象。

  • 0 Comments

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