我觉得我不得不发布这个,但我现在已经试图实现这一整个星期了,而且我无处可去!
我试图创建一个高分榜。排名前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.再次,我很抱歉提出同样古老的问题,但我真的需要帮助,并希望那里的人可以提供帮助!
非常感谢, 李。
答案 0 :(得分:0)
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
。