Game Maker Studio:前 10 名高分(认真)

Posted

技术标签:

【中文标题】Game Maker Studio:前 10 名高分(认真)【英文标题】:Game Maker Studio: Top 10 Highscores (Seriously) 【发布时间】:2015-10-27 08:53:10 【问题描述】:

我觉得不得不发布这个真的很愚蠢,但我已经努力了整整一个星期,但我一无所获!

我正在尝试创建一个高分板。前 10 个分数,保存到一个 INI 文件中。我曾经在整个互联网上搜索过每一件事。我就是不明白。

所以我尝试的是这个......

我有一个“load_room”设置。当这个房间加载时,它会运行以下代码:

ini_open('score.ini')
ini_write_real("Save","highscore_value(1)",highscore_value(1));
ini_write_string("Save","highscore_name(1)",highscore_name(1));
ini_close();

room_goto(room0);

然后当我的角色死亡时:

myName = get_string("Enter your name for the highscore list: ","Player1"); //if they enter nothing, "Player1" will get put on the list
highscore_add(myName,score);

ini_open('score.ini')
value1=ini_write_real("Save","highscore_value(1)",0);
name1=ini_write_string("Save","highscore_name(1)","n/a");
ini_close();
highscore_clear();
highscore_add(myName,score);

score = 0;
game_restart();

我不担心包含显示分数的代码,因为我正在检查游戏为实际添加的值创建的 score.ini。

有了这个,我似乎能够保存一个分数,仅此而已。我需要保存 10 个。再次,我很抱歉问了同样古老的问题,但我真的需要帮助,希望有人能提供帮助!

非常感谢, 李。

【问题讨论】:

我想你混淆了ini_write_realini_read_real 对于任何访问此页面的人,让我指出,有一些扩展可以创建在线高分系统,让玩家可以看到其他玩家的高分。有点酷。见google.com/… 【参考方案1】:
    为什么在load_room 中使用保存而不是加载? 为什么你死后要收拾桌子? 您需要使用循环来保存每个结果。

例如加载:

highscore_clear();

ini_open("score.ini");
for (var i=1; i<=10; i++)

    var name = ini_read_string("Save", "name" + string(i), "");
    var value = ini_read_real("Save", "value" + string(i), 0);
    if value != 0
        highscore_add(name, value);

ini_close();

room_goto(room0);

死亡:

myName = get_string("Enter your name for the highscore list: ","Player1");
highscore_add(myName, score);

ini_open("score.ini");
for (var i=1; i<=10; i++)

    ini_write_string("Save", "name" + string(i), highscore_name(i));
    ini_write_string("Save", "value" + string(i), string(highscore_value(i)));

ini_close();

score = 0;
game_restart();

还有一些事情......

score = 0;

你需要在游戏开始时进行,所以这里没有必要。

get_string("Enter your name for the highscore list: ","Player1");

您是否阅读了帮助中的注释?

注意:此功能仅供调试使用。如果您在最终游戏中需要此功能,请使用get_string_async

我使用ini_write_string(..., ..., string(...)); 而不是ini_write_real(),因为第二种情况会保存1000.000000000 之类的内容,第一种情况只会保存1000

【讨论】:

以上是关于Game Maker Studio:前 10 名高分(认真)的主要内容,如果未能解决你的问题,请参考以下文章

Game Maker Studio,脚本参数不响应变量

Game Maker Studio的位置问题

如何在 Game Maker Studio 2 中跟踪随机遭遇的步骤

在 Game maker studio 2.0 中写入电子表格

Game Maker Studio 网络客户端到服务器通信

使用 Game Maker Studio 2 中的快速排序算法对列表进行排序