Advertisement
Guest User

Code for Tile Collisions

a guest
Feb 20th, 2019
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. I Spillerens Create Event:
  2. tilemap = layer_tilemap_get_id("CollisionMap")
  3.  
  4. I Step event:
  5. var bbox_side
  6.  
  7. // Horizontal tile colission check
  8. if (hsp > 0) bbox_side = bbox_right else bbox_side = bbox_left
  9. if  (tilemap_get_at_pixel(tilemap, bbox_side + hsp, bbox_top + 1) != 0) ||
  10.     (tilemap_get_at_pixel(tilemap, bbox_side + hsp, bbox_bottom - 1) != 0) ||
  11.     (tilemap_get_at_pixel(tilemap, bbox_side + hsp, y) != 0) {
  12.     if (hsp > 0) x = x - x % 128 + 127 - (bbox_right - x)
  13.     else x = x - x % 128 - (bbox_left - x)
  14.     hsp = 0
  15. }
  16. x += hsp
  17.  
  18. // Vertical tile colission check
  19. vsp += grav;
  20. if (vsp > 0) bbox_side = bbox_bottom else bbox_side = bbox_top
  21. if  (tilemap_get_at_pixel(tilemap, bbox_left + 1, bbox_side + vsp) != 0) ||
  22.     (tilemap_get_at_pixel(tilemap, bbox_right - 1, bbox_side + vsp) != 0) ||
  23.     (tilemap_get_at_pixel(tilemap, x, bbox_side + vsp) != 0) {
  24.     if (vsp > 0) y =  y - y % 128 + 127 - (bbox_bottom - y)
  25.     else y = y - y % 128 - (bbox_top - y)
  26.     vsp = 0
  27. }
  28. y += vsp
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement