Advertisement
Guest User

Untitled

a guest
Jun 22nd, 2020
768
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.17 KB | None | 0 0
  1. ///@description tile_meeting_precise(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(!instance_exists(obj_tile_wall)) instance_create_depth(0,0,0,obj_tile_wall);
  9.  
  10. if(_tm == -1 || layer_get_element_type(_tm) != layerelementtype_tilemap) {
  11. show_debug_message("Checking collision for non existent layer / tilemap")
  12. return false;
  13. }
  14.  
  15. var _x1 = tilemap_get_cell_x_at_pixel(_tm, bbox_left + (argument0 - x), y),
  16. _y1 = tilemap_get_cell_y_at_pixel(_tm, x, bbox_top + (argument1 - y)),
  17. _x2 = tilemap_get_cell_x_at_pixel(_tm, bbox_right + (argument0 - x), y),
  18. _y2 = tilemap_get_cell_y_at_pixel(_tm, x, bbox_bottom + (argument1 - y));
  19.  
  20. for(var _x = _x1; _x <= _x2; _x++){
  21. for(var _y = _y1; _y <= _y2; _y++){
  22. var _tile = tilemap_get(_tm, _x, _y);
  23. if(_tile){
  24. if(_tile == 1) return true;
  25.  
  26. obj_tile_wall.x = _x * tilemap_get_tile_width(_tm);
  27. obj_tile_wall.y = _y * tilemap_get_tile_height(_tm);
  28. obj_tile_wall.image_index = _tile;
  29.  
  30. if(place_meeting(argument0,argument1,obj_tile_wall))
  31. return true;
  32. }
  33. }
  34. }
  35.  
  36. return false;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement