Advertisement
Guest User

good collision code

a guest
Feb 18th, 2019
176
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //set accSp to something less than 1 in create event
  2. //set hsp and vsp to 0 in create event
  3.  
  4. //movement/collisions
  5. hInc=(accSp*sign(hsp))
  6. vInc=(accSp*sign(vsp))
  7. absH=abs(hsp)
  8. absV=abs(vsp)
  9. spMax=max(absH,absV)
  10. absVInc=abs(vInc)
  11. absHInc=abs(hInc)
  12. if absH>absV{
  13.     vInc=(absV/absH)*vInc
  14. }
  15. if absV>absH{
  16.     hInc=(absH/absV)*hInc
  17. }
  18.  
  19. xFloor=false
  20. yFloor=false
  21.  
  22. for(var i=0;i<spMax;i+=accSp){
  23.     if !place_meeting(x+hInc,y,obj_collision){
  24.         x+=hInc
  25.     }
  26.     else{
  27.         hsp=0
  28.         xFloor=true
  29.     }
  30.     if !place_meeting(x,y+vInc,obj_collision){
  31.         y+=vInc
  32.     }
  33.     else{
  34.         vsp=0
  35.         yFloor=true
  36.     }
  37. }
  38. if place_meeting(x+1,y,obj_collision) or xFloor{
  39.     x=floor(x)
  40. }
  41. if place_meeting(x,y+1,obj_collision) or yFloor{
  42.     y=floor(y)
  43. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement