#Help with tilemap_get/set_at_pixel

1 messages · Page 1 of 1 (latest)

barren wasp
#

Greetings! I've been trying to make this image work for the past day but for some reason the new created layers and tiles never appear. It's successful in cutting out the tiles from the base layers and replacing them with an empty space but the new tiles are either never placed or maybe there's something wrong with creating the tilemap? I'm not sure. I hope this place can be of help. Here's the create and step events of the part I'm strugling with: (character limit, code in next message)

#

Create Event:

if !variable_global_exists("direction_map") global.direction_map = ds_map_create();
    direction_var = "var_" + direction_id + "_direction";

    if !ds_map_exists(global.direction_map, direction_var) global.direction_map[? direction_var] = (plane == PLANE_A) ? 1 : -1;
    
    tilemap_A = layer_tilemap_get_id("GrindRailA"); tileset_A = tilemap_get_tileset(tilemap_A);
    tilemap_B = layer_tilemap_get_id("GrindRailB"); tileset_B = tilemap_get_tileset(tilemap_B);

    separated_layer_A = layer_create(layer_get_depth("GrindRailA"), "RailA" + direction_id);
    separated_layer_B = layer_create(layer_get_depth("GrindRailB"), "RailB" + direction_id);

    separated_tilemap_A = layer_tilemap_create(separated_layer_A, 0, 0, tileset_A, tilemap_get_tile_width(tilemap_A), tilemap_get_tile_height(tilemap_A));
    separated_tilemap_B = layer_tilemap_create(separated_layer_B, 0, 0, tileset_B, tilemap_get_tile_width(tilemap_B), tilemap_get_tile_height(tilemap_B));

    for (var j = bbox_top; j <= bbox_bottom; j += 16){
        for (var i = bbox_left; i <= bbox_right; i += 16){
            var tile = tilemap_get_at_pixel(tilemap_A, i, j);
            tilemap_set_at_pixel(separated_tilemap_A, tile, i, j);
            tilemap_set_at_pixel(tilemap_A, 0, i, j);
            
            tile = tilemap_get_at_pixel(tilemap_B, i, j);
            tilemap_set_at_pixel(separated_tilemap_B, tile, i, j);
            tilemap_set_at_pixel(tilemap_B, 0, i, j);
        }
    }