Advertisement
Guest User

Shaun's Platformer with Slopes

a guest
Feb 10th, 2023
7,571
4
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //CREATE EVENT
  2.  
  3. grv = 0.2; //gravity
  4. hsp = 0; //current horizontal speed
  5. vsp = 0; //current vertical speed
  6. hspWalk = 4; //walk speed
  7. vspJump = -5; //jump speed
  8. canJump = 0; //above zero while we are able to jump
  9. onGround = false; //are we on the ground?
  10.  
  11. //STEP EVENT
  12.  
  13. //Get inputs
  14. var _keyRight = keyboard_check(vk_right);
  15. var _keyLeft = keyboard_check(vk_left);
  16. var _keyJump = keyboard_check_pressed(vk_space);
  17.  
  18. slopeOn = keyboard_check(vk_control);
  19.  
  20. //Work out where to move horizontally
  21. hsp = (_keyRight - _keyLeft) * hspWalk;
  22.  
  23. //Work out where to move vertically
  24. vsp = vsp + grv;
  25.  
  26. //Work out if we should jump
  27. if (canJump-- > 0) && (_keyJump)
  28. {
  29.     vsp = vspJump;
  30.     canJump = 0;
  31. }
  32.  
  33. //Are we on the ground?
  34. onGround = place_meeting(x,y+1,oWall);
  35.  
  36. //Horizontal move & collide
  37. var _hCol = move_and_collide(hsp, 0, oWall, abs(hsp))
  38.  
  39. //Walk down slope
  40. if (onGround) && (place_meeting(x,y + abs(hsp) + 1 ,oWall)) && (vsp >= 0)
  41. {  
  42.     vsp += abs(hsp) + 1;
  43. }
  44.  
  45. //Vertical move & collide
  46. var _vCol = move_and_collide(0, vsp, oWall, abs(vsp)+1 , hsp, vsp, hsp, vsp)
  47. if (array_length(_vCol)  > 0)
  48. {
  49.     if (vsp > 0) canJump = 10;
  50.     vsp = 0;
  51. }
  52.  
  53.  
  54.  
  55.  
  56.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement