GameMaker Studio 2

创建于:2017-04-19

创建人: dougen

190 信息 1080 成员
游戏开发工具 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,打开并提取所需内容。


        完。如果有更好更快更巧妙的方法,欢迎大家交流讨论,虚心学习一下。

(转发自:原日志地址

近期喜欢的会员

 
BlankStudio 2021-08-04

with (all) {

        //开始收集信息

};


这样应该就行,不需要获取ins总量再遍历

 

加入 indienova

  • 建立个人/工作室档案
  • 建立开发中的游戏档案
  • 关注个人/工作室动态
  • 寻找合作伙伴共同开发
  • 寻求线上发行
  • 更多服务……
登录/注册