Advertisement
Guest User

Untitled

a guest
Nov 30th, 2018
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ///Movement
  2.  
  3. var ss,success;
  4. //
  5. // player update horizontal speed
  6. if (keyR==true and keyL==false)
  7. {
  8.     vHspeed += vHspeedAcc
  9.     //
  10.     // restrict the hspeed variable
  11.     if (vHspeed > vHspeedMax)
  12.     {
  13.         vHspeed = vHspeedMax;
  14.     }
  15. }
  16. else if (keyR==false and keyL==true)
  17. {
  18.     vHspeed -= vHspeedAcc;
  19.     //
  20.     // restrict the hspeed variable
  21.     if (vHspeed < -vHspeedMax)
  22.     {
  23.         vHspeed = -vHspeedMax;
  24.     }
  25. }
  26. else
  27. {
  28.     //
  29.     // when no key is pressed or both are pressed
  30.     if (vHspeed > 0)
  31.     {
  32.         if vGround
  33.             vHspeed -= vHspeedDec;
  34.         if (vHspeed < 0)
  35.         {
  36.             vHspeed = 0;
  37.         }
  38.     }
  39.     if (vHspeed < 0)
  40.     {
  41.         if vGround
  42.             vHspeed += vHspeedDec;
  43.         if (vHspeed > 0)
  44.         {
  45.             vHspeed = 0;
  46.         }
  47.     }
  48. }
  49.  
  50. //
  51. // player update vertical speed
  52. if (vGround == false){
  53.     vVspeed += vVspeedGrav;
  54.     //
  55.     // restrict the vspeed variable
  56.     if (vVspeed > vVspeedMax){
  57.         vVspeed = vVspeedMax;
  58.     }
  59. }
  60.  
  61. //
  62. // player event handling
  63.  
  64. //
  65. // player jumping
  66. if keyJump {
  67.     if (vGround == true){
  68.         vVspeed = -2.90;
  69.         vGround = false;
  70.     }
  71. }
  72. else if (!keyJump && vVspeed <= -2.90/2)
  73.     vVspeed = -2.90/2;
  74.  
  75. //
  76. // player vertical movement
  77. vfyspeed += abs(vVspeed);
  78. ss = sign(vVspeed);
  79.  
  80. if (vfyspeed >= 0.5){
  81.     while(vfyspeed >= 0.5){
  82.         vfyspeed -= 1;
  83.         success = false;
  84.         //
  85.         // choose between the bottom or top movement
  86.         switch(ss){
  87.             case 1: if (place_meeting(x,y+1,objSolid)==false) { y += 1; success = true; }break;
  88.             case -1: if (place_meeting(x,y-1,objSolid)==false) { y -= 1; success = true; }break;
  89.         }
  90.         //
  91.         // when there is a collision
  92.         if (success == false){
  93.             vfyspeed = 0;
  94.             if (vVspeed > 0) vGround = true;
  95.             vVspeed = 0;
  96.             break;
  97.         }
  98.     }
  99. }
  100.  
  101. //
  102. // player horizontal movement
  103. vfxspeed += abs(vHspeed);
  104. ss = sign(vHspeed);
  105.  
  106. if (vfxspeed >= 0.5){
  107.     while(vfxspeed >= 0.5){
  108.         vfxspeed -= 1;
  109.         success = false;
  110.         //
  111.         // choose between right or left movement
  112.         switch(ss)
  113.         {
  114.             case 1:
  115.             if (place_meeting(x+1,y,objSolid)==false)
  116.             {
  117.                 x += 1;
  118.                 success = true;
  119.             }
  120.             else
  121.             {
  122.                 //
  123.                 // use a 'for loop' if you want higher slope handling
  124.                 if (vGround==true && place_meeting(x+1,y-1,objSolid)==false)
  125.                 {
  126.                     x += 1;
  127.                     y -= 1;
  128.                     success = true;
  129.                 }
  130.             }
  131.             break;
  132.            
  133.             case -1:
  134.             if (place_meeting(x-1,y,objSolid)==false)
  135.             {
  136.                 x -= 1;
  137.                 success = true;
  138.             }
  139.             else
  140.             {
  141.                 //
  142.                 // use a 'for loop' if you want higher slope handling
  143.                 if (vGround==true && place_meeting(x-1,y-1,objSolid)==false)
  144.                 {
  145.                     x -= 1;
  146.                     y -= 1;
  147.                     success = true;
  148.                 }
  149.             }
  150.             break;
  151.         }
  152.         //
  153.         // when there is a collision
  154.         if (success == false){
  155.             vfxspeed = 0;
  156.             if (vHspeed > 0) if (place_meeting(x+1,y-1,objSolid)==true)
  157.                 vHspeed = 0;
  158.             if (vHspeed < 0) if (place_meeting(x-1,y-1,objSolid)==true)
  159.                 vHspeed = 0;
  160.             break;
  161.         }
  162.         //
  163.         // going down slopes
  164.         if (vGround == true){
  165.             if (place_meeting(x,y+1,objSolid)==false){
  166.                 y += 1;
  167.                 //
  168.                 // check if we are NOT touching the ground anymore
  169.                 if (place_meeting(x,y+1,objSolid)==false) vGround = false;
  170.             }
  171.         }
  172.     }
  173. }
  174.  
  175. //
  176. // check if we are on the ground
  177. if (place_meeting(x,y+1,objSolid)==false)
  178.     vGround = false;
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187. ///Sprite animation
  188.  
  189. //Facing directions
  190. if keyR
  191.     image_xscale = 1;
  192. else if keyL
  193.     image_xscale = -1;
  194.  
  195. //Facing up and down
  196. if keyU
  197.     sprite_index = sprQuoteUp;
  198. else if keyD
  199.     sprite_index = sprQuoteDown;
  200. else
  201.     sprite_index = sprQuote;
  202.    
  203. //Collision animation
  204. if vGround
  205. {
  206.     if vHspeed = 0
  207.     {
  208.         image_index = 0;
  209.         frameTimer = 0;
  210.     }
  211.     else
  212.     {
  213.         frameTimer++;
  214.         if ((frameTimer >= updateTime) && keyD)
  215.         {
  216.             image_index += 1;
  217.            
  218.             if ((keyL || keyR) && (image_index == 4) || (image_index == 2))
  219.                 play_sfx(sfxQuoteWalk);
  220.                
  221.             if (image_index > 3)
  222.                 image_index = 0;
  223.                
  224.             frameTimer = 0;
  225.         }
  226.         else
  227.         if keyD
  228.         {
  229.             image_index = 0;
  230.         }
  231.     }
  232. }
  233. /*
  234. else
  235. {
  236.     //Checks if jumping or falling
  237.     if vsp < 0
  238.     {
  239.         image_index = 1;
  240.     }
  241.     else
  242.     {
  243.         image_index = 3;
  244.     }
  245. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement