nb109

Tile Collisions

Dec 22nd, 2017
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /* Creator (and original version at): https://pastebin.com/u/ShaunJS */
  2.  
  3. //Horizontal collision
  4. if (hsp > 0) bbox_side = bbox_right; else bbox_side = bbox_left;
  5. if (tilemap_get_at_pixel(tilemap,bbox_side+hsp,bbox_top) != 0) ||  (tilemap_get_at_pixel(tilemap,bbox_side+hsp,bbox_bottom) != 0)
  6. {
  7.     if (hsp > 0) x = (((x div 32)+1) * 32) - 1 - (bbox_right - x);
  8.     else x = (((x div 32)) * 32) - (bbox_left - x);
  9.     hsp = 0;
  10. }
  11. x += hsp;
  12.  
  13. //Vertical collision
  14. if (vsp > 0) bbox_side = bbox_bottom; else bbox_side = bbox_top;
  15. if (tilemap_get_at_pixel(tilemap,bbox_left,bbox_side+vsp) != 0) || (tilemap_get_at_pixel(tilemap,bbox_right,bbox_side+vsp) != 0)
  16. {
  17.     if (vsp > 0) y = (((y div 32)+1) * 32) - 1 - (bbox_bottom - y);
  18.     else y = (((y div 32)) * 32) - (bbox_top - y);
  19.     vsp = 0;
  20. }
  21. y += vsp;
Add Comment
Please, Sign In to add comment