一个好的游戏,离不开数据的管理,比如记录得分、怪物血量、处理临时数据等都需要数据的支持。
数据面板中有4种类型:变量、列表、表格以及通知。其中变量、列表和表格有全局和局部两种类型。
全局具有唯一性,所有精灵都可以对其进行使用和修改。而局部则是属于某个精灵的,克隆精灵时也会克隆精灵的局部数据。
下面就让我们通过一个答题游戏的制作来学习数据的使用吧!
如上图所示,我们需要实现以下几个能力:
1. 题目的展示(包括正确答案)
2. 点击左右按钮切换题目
3. 点击选项显示星星,记录玩家答案
4. 提交答案,未完成时显示提示,成功提交后显示正确答案
1.题目的展示
题目包括:问题、4个选项以及1个正确答案。先添加好对应精灵,并选择这几个精灵后右键组合成容器。
场景中玩家点击左右按钮切换题目,因此我们需要一个表格来存储题目,一个变量记录当前是第几题,另一个变量记录是否已提交答案。
当前题目变量初始化为1。
在背景图层,当场景启动时,新建一个通知,通知所有人换题。
题目容器在收到换题通知之后,更新题目内容,并根据是否已答题判断是否显示正确答案。
这样题目的显示就完成了。
2.左右按钮切换题目
首先添加左右两个精灵,并当精灵被点击时更新当前题目变量,并通知所有人换题。点击左按钮当前题目减少1,点击右按钮增加1。以左按钮为例:
这里我们个精灵加上了一个局部变量:不可点击。因为第一个题目的时候,左按钮应该是不可点击的,最后一题的时候,右按钮也是不可点击的。所以我们还要加上按钮的不可点击状态的更新。
左按钮:
右按钮:
这样左右按钮的功能也完成了。
3.星星的显示以及答题记录
添加星星精灵,因为要计算星星的位置,所以把星星加入到题目容器里。调试好星星的初始位置。
星星在场景启动时,是不显示的。
我们需要一个答案列表,记录玩家的答题记录。并且初始化列表数据为0。0表示未答题。
当选项被点击,更新答案列表中对应位置的数据,A选项更新为1、B选项为2、C选项为3、D选项为4。以A选项为例:
星星在收到换题通知之后,判断当前题目是否已答题,并根据答案更新自己的Y坐标,移动到对应选项旁边。
这样,星星的显示和记录答题也完成了。
4.提交
玩家点击提交按钮,如果有题目未作答,则显示未完成提示,否则显示正确答案。首先添加好对应精灵,给提交容器添加点击事件。
未完成精灵收到提示后,显示自己。
最后,当成功提交后,修改按钮背景色。
到这里,整个答题游戏就完成了。这个游戏我们使用了全局变量、列表、表格以及通知。大家可以通过下面的链接和二维码体验和改该游戏。
项目地址
https://gamemaker.weixin.qq.com/#/game?game_id=lbNjIyMmQ0OGEtOWNkZC00NzUwLWEzN2YtMDMwYTlhNzQ0YmEw
B站视频教程链接
https://www.bilibili.com/video/BV17T4y1P7bC
扫码关注公众号