YoYoGames / GameMaker-Bugs

Public tracking for GameMaker bugs
24 stars 8 forks source link

Instance_position and instance_place bug with tilemaps in Windows and HTML5 targets #7560

Open gm-bug-reporter[bot] opened 1 month ago

gm-bug-reporter[bot] commented 1 month ago

Description

(Windows target) If in the generator_startup() script on line 67 we change var _y=1 to var _y=0 (filling tiles from the zero cell), then instance_position of the obj_player object will return the value of the tile map, which is far from obj_player (see draw gui obj_player draw_text(100,500,_layer_tile_id)). And if we leave var _y=0, then after the zero cell of the tile map is destroyed, the collision with it will disappear, but only when obj_player moves along the y_cell.

(HTML5 target) Also, if we replace instance_position with instance_place(obj_player step event line 155) and go to the second tile map, then this map has a height one cell higher. This can be solved by changing the generator_startup() script on line 67 to change var _y=1 to var _y=0

Which version of GameMaker are you reporting this issue for?

IDE v2024.2.0.132 Runtime v2024.2.0.163

Which operating system(s) are you seeing the problem on?

Windows 10.0.19045.0

37b227c3-a09a-4100-a903-d8ac0e00fe62

stuckie commented 1 month ago

Your log files show you are using an older version of GameMaker. This issue should already be fixed in the current GameMaker version, so please update and retest your problem, then let us know here if it is fixed or not.

Memlen commented 1 month ago

I also tried the latest version of Montly and Beta. The problem persists.

I also noticed that instance_position also works incorrectly with tilemap by the x coordinate (similar to the y coordinate). That is, you need to fill the tile layer from the cell (1,1). And you also need to fill the tile layer up to tilemap_get_width-1, tilemap_get_height-1. As a result, for correct operation of instance_position, you must NOT fill the zero cell and the last tile layer by x and y