0

好的,所以我设法让所有建筑物保持原位,但现在由于某种原因,玩家角色不会走到建筑物前面。

我尝试切换代码中用于检查角色是否在建筑物后面的 if 命令和用于检查其是否在代码前面的 if-else 的位置,但没有任何改变。

这是代码:

var _dg = depth_grid;
var _inst_num = instance_number(obj_depth_buildings);

//below is for resizing the grid

ds_grid_resize(depth_grid,2, _inst_num);

//below adds instance info to grid

var _yy = 0;

with (obj_depth_buildings)
{
    _dg[# 0,_yy] = id;
    _dg[# 1,_yy] = y;
    _yy++;
}

//below sorts the grid so that the ones with the biggest y variables end up at the top
ds_grid_sort(_dg,1,false);

//below goes through the grid and identifies everything
var _inst;
_yy = 0;

repeat (_inst_num)
{   
    //below pulls out an id

    _inst = _dg[# 0, _yy];

    //below gets the instance execute depth

    with(_inst)
    {
        _inst.depth= layer_get_depth("collision") + _yy;

        with (obj_nonbuilding_depths)
        {
            if object_index.y > _inst.y
            {
                object_index.depth = (_inst.depth + 1);
            }
            else if object_index.y <= _inst.y
            {
                object_index.depth = (_inst.depth - 1);
            }
        }
    }
    _yy++;
}
4

1 回答 1

0

您应该通过更改 GMS2 中的 leyar 深度来更改对象深度

于 2020-07-21T06:03:03.527 回答