SHOW:
|
|
- or go back to the newest paste.
| 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; |