谁来帮我做记录

简介: 这一节,我们将要学习游戏开发中的记录员---变量。开始之前,先提几个问题:- 变量的作用是什么?- 变量分为哪些类型?- 我们什么时候用到变量?- 如何判断使用哪种类型的变量?

这一节,我们将要学习游戏开发中的记录员---变量。


开始之前,先提几个问题:


- 变量的作用是什么?

- 变量分为哪些类型?

- 我们什么时候用到变量?

- 如何判断使用哪种类型的变量?


欢迎带着这几个问题,继续向下阅读,寻找答案。


我把变量比喻为游戏开发中的记录员,顾名思义就是帮助记录的。那么游戏中都有哪些东西需要记录呢?以最简单的“打飞机”小游戏作为例子,在这个游戏中可能需要记录以下这些东西:


- 得分

- 你的飞机的血量

- 敌人的飞机的血量

- 游戏是否结束


玩家需要知道自己在游戏中得了多少分(击毁一架敌机能得一分),因此,需要一个“得分”的变量帮助记录。


通常作为游戏的主角(你的战机)是需要有血量的,每被攻击到一次,血量就会减1,血量为0时,游戏就结束了。所以我们需要一个叫做“战机血量”的变量来帮助记录血量。


作为敌人也是需要有血量的,小的敌机血量为1,一下就干掉了,大的敌机血量为2,需要攻击两次才能干掉。所以我们需要一个“敌机血量”的变量来记录。


最后,我们需要一个“游戏是否结束”的变量来记录游戏是否结束,因为游戏结束后,需要出现游戏结束的提示,并且游戏结束后,玩家就不应该再能对游戏进行操作了,所以我们需要一个记录,来提示我们,什么时候该出现游戏结束的提示,什么时候不能让玩家进行操作。


在游戏中任何有需要记录的东西,都可以用到“变量”,这就是“变量”在游戏开发中的作用。


变量分为两种类型:全局的,局部的。


全局变量就是在整个游戏中做记录的变量,局部变量就是在游戏中的部分物体上做记录的变量。


依旧使用“打飞机”小游戏作为示例,游戏中包含四个变量“得分”,“战机血量”,“敌机血量”,“游戏是否结束”。


“得分”是记录整个游戏过程中玩家共击毁了多少架敌机,所以“得分”是全局变量。


“战机血量”记录的是玩家的血量,一旦它变为0,对于整个游戏来说就意味着游戏结束了,所以“战机血量”也是全局变量。


“游戏是否结束”是记录游戏的整个状态的,所以它也是全局变量。


“敌机血量”我们上方有提到,小的敌机血量为1,大的敌机血量为2。所以这个血量记录的是每一架敌机的血量,变量记录的是游戏中的每一架敌机,所以它是一个局部变量。


总结一下,如果面对的是整个游戏做一项记录,那么就使用“全局变量”,如果针对的是游戏中的单个物体,那么就使用“局部变量”来做记录。


下面我们学习一个如何创建全局变量和局部变量。


找到最右侧的“数据区”,点击“新建变量”按钮。

640.png


在弹出的对话框中填上变量的名字“得分”,然后选择“全局”,点击“确定”。

640.png


看一下数据区中,出现了一个全局的“得分”变量。这样一个全局变量就创建好啦!

640.png


接着,创建另外两个全局的变量,“战机血量”和“游戏是否结束”,创建完成后数据区中会出现三个全局变量。

640.png

小提示:选中任意的全局变量,前面会出现一个红色的圆并带有一个减号,点击即可将这个变量删除。


下面,我们继续来创建最后一个局部变量:“敌机血量”。


在层级管理中选中红色的小敌机,然后在数据区中点击“新建变量”。

640.png


在弹出框中输入变量的名称“敌机血量”,然后选择“局部”(注意观察局部显示的图片就是你选择的红色小敌机的图片),点击“确定”。

640.png


观察一下数据区,在敌机下出现了敌机血量的局部变量。

640.png


我们设置一下变量的值,双击“敌机血量”后面的数值0,即可对数值进行修改,这里我们把红色小敌机的血量设置为1。

640.png


接着,我们为蓝色的大敌机增加一个“敌机血量”的局部变量,并且将数值设置为2,看起来应该是下面这样。

640.png


最后我们设置一下全局变量的数值,得分默认为0,因为还没有击毁任何的敌机呢!游戏是否结束默认为0,0 表示没有结束,1 表示游戏结束。战机血量设置为1,意味着我们只要被敌机打到一次就完蛋了。

640.png


回顾一下:


我们了解了变量在游戏开发中的作用,以及变量的两种类型:全局变量和局部变量。


当面对整个游戏时使用全局变量,当面对游戏中的某个物体时,使用局部变量。


我们学习了如何创建全局变量与局部变量,并且编辑了它们的数值。


想一下在经典的俄罗斯方块游戏中,都需要对哪些东西做记录,哪些是属于全局的,哪些是属于局部的呢?

相关文章
|
6月前
【记录 bpftrace】
【记录 bpftrace】
|
5月前
|
C++
C++\日常记录
C++\日常记录
22 0
|
Web App开发 关系型数据库 MySQL
日常技巧记录-2018.08
日常技巧记录-2018.08
106 0
|
SQL Java 数据库
问题记录v(●‘◡‘●)v
问题记录v(●‘◡‘●)v
文章记录
记录平时的文章
|
SQL Oracle 关系型数据库
|
数据库 数据安全/隐私保护