Gamemaker-studio高分榜制作教程
Gamemaker-studio是一款非常强大的游戏制作软件。
这里分享一下GMS制作高分榜/排行榜的方法
操作方法
- 01
创建一个空的INI,这个也可以用于清除所有高分记录。可以把这个做一个脚本,不存在时调用一次,清除所有高分记录时也可以调用。 ini_open("save.ini")//打开INI for(i=1;i<11;i+=1)//循环10次写入空值 {ini_write_string(string(i),"player","");//玩家 ini_write_real(string(i),"score",0);//分数 ini_write_string(string(i),"date","");//日期} ini_close();
- 02
读取ini文件信息并绘制:用于显示高分记录。 if(file_exists("save.ini"))//如果存在记录文件 {ini_open("save.ini")//打开 draw_text(10,40,"level");//这四行绘制头部 draw_text(100,40,"player"); draw_text(300,40,"score"); draw_text(400,40,"date"); for(i=1;i<11;i+=1){a=ini_read_string(string(i),"player","");//读取信息 b=ini_read_real(string(i),"score",0);c=ini_read_string(string(i),"date","");draw_text(10,40*(i+1),string(i));//绘制信息 draw_text(100,40*(i+1),a); draw_text(300,40*(i+1),string(b)); draw_text(400,40*(i+1),string(c));}ini_close();//关闭ini }
- 03
下面是有分数记录时的排序算法。 var user_name,user_score,s_10,user_time; user_name=get_string("input player's name","");//用户名,这里用输入框输入 user_score=get_integer("input player's score",0);//分数,用输入框输入 user_time=string(date_get_year(date_current_datetime()))+"-"+string(date_get_month(date_current_datetime()))+"-"+string(date_get_day(date_current_datetime()))+" "+string(date_time_string(date_current_datetime()));//获取当前日期时间 ini_open("save.ini");//打开记录文件 s_10=ini_read_real("10","score",0);//获取最后一个分数 if(user_score>s_10)//如果玩家分数比最后一个分数高 {for(i=1;i<11;i+=1)//从第一个开始循环 {sc=ini_read_real(string(i),"score",0);//读取分数 if(user_score>sc) break;//如果玩家分数比当前名次分数多跳出循环 } for(j=10;j>i;j-=1)//从后往前循环,将前一个位次信息写入当前位次 {a=ini_read_string(string(j-1),"player","");//读取前一个 b=ini_read_real(string(j-1),"score",0); c=ini_read_string(string(j-1),"date",""); ini_write_string(string(j),"player",a);//写入当前 ini_write_real(string(j),"score",b); ini_write_string(string(j),"date",c); } ini_write_string(string(i),"player",user_name);//写入跳出位次的信息 ini_write_real(string(i),"score",user_score); ini_write_string(string(i),"date",user_time); } ini_close();//关闭记录