0

我对我的游戏中的分数有疑问,我的游戏是使用混乱的字母回答问题,当玩家获得一个正确答案时,游戏应该为游戏分数加1并移到下一个级别(在下一个房间),并且会生成另一个问题,并保留最后一个分数为1.我的问题是,分数会一直保持重置为某个值当移入下一个房间时为0。即使我去隔壁房间,我也希望它能持续增加+1。先谢谢你。游戏制作室工作室分数,我的分数在进入下一个房间时重置

回答

1

有很多解决方案。
1)设置你的分数控制对象持续
persistent
这是最好的,因为你不需要做别的什么,而事实上,这是一个很好的规则有一个对象作为持续控制器。

2)您可以将您的分数保存到文件和每个正在创建该对象(即存储变量)时加载它
这需要保存\负荷操作,在某些情况下(例如,你不”不想拥有任何持久对象)可以更好,但我非常怀疑。

0

您没有提供足够的关于如何存储分数值的详细信息。

这可能是许多问题的原因在你在进行游戏的方式,所以我要去尝试给所有解决所有可能出现的情况:

1)对象变量存储得分

这种方式可能有两种不同的子方案:

一)将下一个房间后正确答案

b)重新启动同一个房间

完全重置对象上的变量,因为该对象被销毁,然后再次创建时再次初始化创建该房间时所保存的变量。

对于这个解决方案很简单:设置永久true,则可以从表单对象属性(即弹出,当你打开一个对象的接口)做或使用对象的创建事件GML:

对象:创建事件

persistent = true; 

这将使即使反复上创建没有再创建房间内的物体,因此事件CREATE不会再次从不重复。

2)存储在使用室创建活动

在这种情况下房间的可变的分数happeng同上面,它只是一个局部变量的房间,但只存在于客房,将只存在在房间里,直到它重新开始或离开。

在这种情况下,最好是通过以下方式这个变量转变为全局实例:

global.points = 0; 

这是存储的分数为你游戏的最佳方式。

只要记住,不要将其放入不持久对象的创建事件中,否则它将被重置为零以创建对象。

在这种情况下,你可以检查变量存在,那么如果不进行初始化:

if (variable_global_exists("points") == true) { 
    global.points = 0; 
} 

现在,如果你想保存它,你需要使用文件功能,这是另外一个问题。