Advertisement
Guest User

Compact Platformer

a guest
Sep 7th, 2018
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //CREATE
  2. key_left = ord('A');
  3. key_right = ord('D');
  4. key_jump = ord('W');
  5.  
  6. hsp = 0;
  7. hspmax = 4;
  8.  
  9. jump = 0;
  10. grav = 0;
  11. jumpheight = -12; //How high can the player spring
  12. jumpamount = 2; //Amount of jumps (double jump in this case)
  13.  
  14. climbheight = 3; //How many pixels can the player climb
  15.  
  16. //STEP
  17. //Change hsp
  18. var hspadd;
  19. hspadd = keyboard_check(key_right) - keyboard_check(key_left);
  20. hsp += hspadd;
  21.  
  22. //Limit hsp
  23. if abs(hsp) > hspmax
  24. {
  25.     hsp = sign(hsp)*hspmax;
  26. }
  27.  
  28. //Smooth movement
  29. if hspadd = 0
  30. {
  31.     hsp -= sign(hsp);
  32. }
  33.  
  34. //Movement
  35. repeat(abs(round(hsp)))
  36. {
  37.     for (i=0;i<=climbheight;i++)
  38.     {
  39.         if place_free(x+sign(hsp),y-i)
  40.         {
  41.             x += sign(hsp);
  42.             y -= i;
  43.             break;
  44.         }
  45.        
  46.         if i = climbheight
  47.         {
  48.             hsp = 0;
  49.             break;
  50.         }
  51.     }
  52. }
  53.  
  54. //Gravity
  55. grav += 1;
  56.  
  57. repeat(abs(round(grav)))
  58. {
  59.     if place_free(x,y+sign(grav))
  60.     {
  61.         y += sign(grav);
  62.     }
  63.     else
  64.     {
  65.         grav = 0;
  66.         break;
  67.     }
  68. }
  69.  
  70. //Double jump
  71. if !place_free(x,y+1)
  72. {
  73.     jump = 0;
  74. }
  75. else
  76. {
  77.     if jump < 2
  78.     {
  79.         jump = 1;
  80.     }
  81. }
  82.  
  83. if keyboard_check_pressed(key_jump) and jump < jumpamount
  84. {
  85.     jump += 1;
  86.     grav = jumpheight;  
  87. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement