实例变量
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分,但现在我们运行游戏依然看不到分数,我们需要一个文本对象。