Advertisement
ShaunJS

Simplified tile collisions

Aug 29th, 2017
584
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //Horizontal collision
  2. if (hsp > 0) bbox_side = bbox_right; else bbox_side = bbox_left;
  3. if (tilemap_get_at_pixel(tilemap,bbox_side+hsp,bbox_top) != 0) ||  (tilemap_get_at_pixel(tilemap,bbox_side+hsp,bbox_bottom) != 0)
  4. {
  5.     if (hsp > 0) x = (((x div 32)+1) * 32) - 1 - (bbox_right - x);
  6.     else x = (((x div 32)) * 32) - (bbox_left - x);
  7.     hsp = 0;
  8. }
  9. x += hsp;
  10.  
  11. //Vertical collision
  12. if (vsp > 0) bbox_side = bbox_bottom; else bbox_side = bbox_top;
  13. if (tilemap_get_at_pixel(tilemap,bbox_left,bbox_side+vsp) != 0) || (tilemap_get_at_pixel(tilemap,bbox_right,bbox_side+vsp) != 0)
  14. {
  15.     if (vsp > 0) y = (((y div 32)+1) * 32) - 1 - (bbox_bottom - y);
  16.     else y = (((y div 32)) * 32) - (bbox_top - y);
  17.     vsp = 0;
  18. }
  19. y += vsp;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement