流贾君@GameMaker Studio 2 的内容(查看所有内容)
Gamemaker Studio 2的奇怪小技巧001 - 快速提取Room内instance的各项资料
流贾君
2021-07-25
因为某个游戏项目的需要,需要提取某个特定Room内instance的各项信息,坐标xy,depth之类的。用于在另一个房间通过不同条件控制并重现这些instasnce,数量少还好,但是数量大的时候一个个手动查看录入实在太不科学。在友人@顺子的提示下,于是有了下面这一段代码。
1、创建一个object,命名为obj_temp_datacollect。
2、在Step里输入下面这段代码,也可自行在with里面添加其他内容,image_alpha,image_blend之类的。
if keyboard_check_pressed(ord("P")) { ini_open("temp_mark.ini"); for(var i = 0; i < instance_count; i ++;) { with(instance_id[i]) { var oobject_name = object_get_name(object_index); var xx = string("xx=" + string(x)); var yy = string("yy=" + string(y)); var ddepth = string("ddepth=" + string(depth)); //分段 /* ini_write_string("data", oobject_name+".name"+string(i), object_get_name(object_index)) ini_write_string("data", oobject_name+".x", x) ini_write_string("data", oobject_name+".y", y) ini_write_string("data", oobject_name+".depth", depth) */ //一行 ini_write_string("data", oobject_name + "." + string(i), oobject_name + "," + xx + "," + yy + "," + ddepth); } } ini_close(); }
3、运行游戏工程,至目标room,按一下P,关闭工程。
4、打开资源管理器,C盘-用户-用户名-AppData-Local-项目名,找到temp_datacollect.ini,打开并提取所需内容。
完。如果有更好更快更巧妙的方法,欢迎大家交流讨论,虚心学习一下。
(转发自:原日志地址)