【问题标题】:Game Maker Studio: Top 10 Highscores (Seriously)Game Maker Studio:前 10 名高分(认真)
【发布时间】: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/…

标签: game-maker


【解决方案1】:
  1. 为什么在load_room 中使用保存而不是加载?
  2. 为什么你死后要收拾桌子?
  3. 您需要使用循环来保存每个结果。

例如加载:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-06
    • 1970-01-01
    • 2020-09-15
    • 2016-08-08
    • 2018-01-10
    • 1970-01-01
    • 1970-01-01
    • 2020-07-04
    相关资源
    最近更新 更多