我对游戏中的分数有疑问,我的游戏是关于使用混乱的字母回答问题,当玩家得到一个正确答案时,游戏应该将游戏分数 +1 并进入下一个级别(即在下一个房间)并会产生另一个问题,并保持你的最后一个分数为 1。我的问题是,当你进入下一个房间时,分数会一直重置为 0。即使我去下一个房间,我也希望它不断添加+1。先感谢您。
问问题
2809 次
2 回答
0
您没有提供有关如何存储分值的足够详细信息。
这可能是由于您制作游戏的方式存在许多问题,所以我将尝试为所有可能的场景提供所有解决方案:
1) 将分数存储在对象变量中
这种方式可能有两种不同的子场景:
a) 正确回答后进入下一个房间
b) 重启同一个房间
这完全重置了对象上的变量,因为对象被销毁然后再次创建,再次初始化它在创建房间时保存的变量。
为此,解决方案很简单:将持久设置为 true,您可以从表单对象属性(打开对象时弹出的界面)或在对象的创建事件上使用 gml:
对象:创建事件
persistent = true;
这将使对象即使在创建的房间上重复也不会再次创建它,因此事件 CREATE 将不会再重复。
2)使用房间创建事件将分数存储在房间的变量中
在这种情况下,与上面的情况相同,它只是房间的一个局部变量,但只存在于房间,并且只会在房间期间存在,直到它重新启动或离开。
在这种情况下,最好通过以下方式将此变量转换为全局实例:
global.points = 0;
这是为您的游戏存储分数的最佳方式。
请记住不要将它放在非持久对象的创建事件中,否则它将被重置为零,该对象被创建的所有内容。
在这种情况下,您可以检查变量是否存在,然后如果不初始化它:
if (variable_global_exists("points") == true) {
global.points = 0;
}
现在,如果要保存它,则需要使用文件函数,这是另一个问题。
于 2017-09-28T15:16:06.213 回答