这一节,我们将要学习游戏开发中的记录员---变量。
开始之前,先提几个问题:
- 变量的作用是什么?
- 变量分为哪些类型?
- 我们什么时候用到变量?
- 如何判断使用哪种类型的变量?
欢迎带着这几个问题,继续向下阅读,寻找答案。
我把变量比喻为游戏开发中的记录员,顾名思义就是帮助记录的。那么游戏中都有哪些东西需要记录呢?以最简单的“打飞机”小游戏作为例子,在这个游戏中可能需要记录以下这些东西:
- 得分
- 你的飞机的血量
- 敌人的飞机的血量
- 游戏是否结束
玩家需要知道自己在游戏中得了多少分(击毁一架敌机能得一分),因此,需要一个“得分”的变量帮助记录。
通常作为游戏的主角(你的战机)是需要有血量的,每被攻击到一次,血量就会减1,血量为0时,游戏就结束了。所以我们需要一个叫做“战机血量”的变量来帮助记录血量。
作为敌人也是需要有血量的,小的敌机血量为1,一下就干掉了,大的敌机血量为2,需要攻击两次才能干掉。所以我们需要一个“敌机血量”的变量来记录。
最后,我们需要一个“游戏是否结束”的变量来记录游戏是否结束,因为游戏结束后,需要出现游戏结束的提示,并且游戏结束后,玩家就不应该再能对游戏进行操作了,所以我们需要一个记录,来提示我们,什么时候该出现游戏结束的提示,什么时候不能让玩家进行操作。
在游戏中任何有需要记录的东西,都可以用到“变量”,这就是“变量”在游戏开发中的作用。
变量分为两种类型:全局的,局部的。
全局变量就是在整个游戏中做记录的变量,局部变量就是在游戏中的部分物体上做记录的变量。
依旧使用“打飞机”小游戏作为示例,游戏中包含四个变量“得分”,“战机血量”,“敌机血量”,“游戏是否结束”。
“得分”是记录整个游戏过程中玩家共击毁了多少架敌机,所以“得分”是全局变量。
“战机血量”记录的是玩家的血量,一旦它变为0,对于整个游戏来说就意味着游戏结束了,所以“战机血量”也是全局变量。
“游戏是否结束”是记录游戏的整个状态的,所以它也是全局变量。
“敌机血量”我们上方有提到,小的敌机血量为1,大的敌机血量为2。所以这个血量记录的是每一架敌机的血量,变量记录的是游戏中的每一架敌机,所以它是一个局部变量。
总结一下,如果面对的是整个游戏做一项记录,那么就使用“全局变量”,如果针对的是游戏中的单个物体,那么就使用“局部变量”来做记录。
下面我们学习一个如何创建全局变量和局部变量。
找到最右侧的“数据区”,点击“新建变量”按钮。
在弹出的对话框中填上变量的名字“得分”,然后选择“全局”,点击“确定”。
看一下数据区中,出现了一个全局的“得分”变量。这样一个全局变量就创建好啦!
接着,创建另外两个全局的变量,“战机血量”和“游戏是否结束”,创建完成后数据区中会出现三个全局变量。
小提示:选中任意的全局变量,前面会出现一个红色的圆并带有一个减号,点击即可将这个变量删除。
下面,我们继续来创建最后一个局部变量:“敌机血量”。
在层级管理中选中红色的小敌机,然后在数据区中点击“新建变量”。
在弹出框中输入变量的名称“敌机血量”,然后选择“局部”(注意观察局部显示的图片就是你选择的红色小敌机的图片),点击“确定”。
观察一下数据区,在敌机下出现了敌机血量的局部变量。
我们设置一下变量的值,双击“敌机血量”后面的数值0,即可对数值进行修改,这里我们把红色小敌机的血量设置为1。
接着,我们为蓝色的大敌机增加一个“敌机血量”的局部变量,并且将数值设置为2,看起来应该是下面这样。
最后我们设置一下全局变量的数值,得分默认为0,因为还没有击毁任何的敌机呢!游戏是否结束默认为0,0 表示没有结束,1 表示游戏结束。战机血量设置为1,意味着我们只要被敌机打到一次就完蛋了。
回顾一下:
我们了解了变量在游戏开发中的作用,以及变量的两种类型:全局变量和局部变量。
当面对整个游戏时使用全局变量,当面对游戏中的某个物体时,使用局部变量。
我们学习了如何创建全局变量与局部变量,并且编辑了它们的数值。
想一下在经典的俄罗斯方块游戏中,都需要对哪些东西做记录,哪些是属于全局的,哪些是属于局部的呢?
没有系统性的学习课程和路线?自己学习没氛围学不下去?遇到问题无人帮助即时解答?缺少经验不知该如何前行?......欢迎加入小蚂蚁的游戏开发年度课程,不只是一门课,而是围绕着学习游戏开发有关的一整套服务。帮助你用一年的时间学会做游戏,做出自己的游戏,让游戏为你带来睡后收入。欢迎来跟一百多位同学一起学习做游戏,一起探索游戏的更多可能。【点击这里】可了解课程服务详情,【点击这里】可了解小蚂蚁能为你提供的其它课程和服务。
这里是小蚂蚁的部分小游戏,闲暇之余希望能给你带来片刻的放松和愉悦。无需下载安装,点击下方的游戏卡片就可以直接玩啦!
欢迎加个微信,交个朋友,朋友圈每日分享与做游戏有关的知识和内容,可以来围观。备注“学习做游戏”可免费领取原创的游戏开发教程资料大合集!非学员只接受付费咨询,不闲聊,望见谅。