SHOW:
|
|
- or go back to the newest paste.
| 1 | ///@description tile_meeting(x,y,layer) | |
| 2 | ///@param x | |
| 3 | ///@param y | |
| 4 | ///@param layer | |
| 5 | var _layer = argument2, | |
| 6 | _tm = layer_tilemap_get_id(_layer); | |
| 7 | ||
| 8 | if(_tm == -1 || layer_get_element_type(_tm) != layerelementtype_tilemap) {
| |
| 9 | show_debug_message("Checking collision for non existent layer / tilemap")
| |
| 10 | return false; | |
| 11 | } | |
| 12 | ||
| 13 | var _x1 = tilemap_get_cell_x_at_pixel(_tm, bbox_left + (argument0 - x), y), | |
| 14 | _y1 = tilemap_get_cell_y_at_pixel(_tm, x, bbox_top + (argument1 - y)), | |
| 15 | _x2 = tilemap_get_cell_x_at_pixel(_tm, bbox_right + (argument0 - x), y), | |
| 16 | _y2 = tilemap_get_cell_y_at_pixel(_tm, x, bbox_bottom + (argument1 - y)); | |
| 17 | ||
| 18 | for(var _x = _x1; _x <= _x2; _x++){
| |
| 19 | for(var _y = _y1; _y <= _y2; _y++){
| |
| 20 | if(tilemap_get(_tm, _x, _y)){
| |
| 21 | return true; | |
| 22 | } | |
| 23 | } | |
| 24 | } | |
| 25 | ||
| 26 | return false; |