Guest User

oGlacius

a guest
Dec 10th, 2025
16
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.90 KB | Gaming | 0 0
  1. Create event:
  2. //Movement
  3. moveDir = 0;
  4. moveSpd = 2;
  5. xspeed = 0;
  6. yspeed = 0;
  7.  
  8. //Jumping
  9. grav = GRAVITY_FORCE;
  10. termVel = 6.5;
  11. jspeed = JUMP_FORCE;
  12. jumpMax = 1;
  13. jumpCount = 0;
  14. jumpHoldTimer = 0;
  15. jumpHoldFrames = 18;
  16. onGround = true;
  17.  
  18. controlSetup();
  19.  
  20. //State vars
  21. state = STATE_FREE;
  22. can_attack = true;
  23. atk_type = ATK_LP;
  24.  
  25. ----------------------------------------------
  26. Step event:
  27. //Get Inputs
  28. getControls();
  29.  
  30. //State switch
  31. switch(state)
  32. {
  33. case STATE_FREE:
  34. can_attack = true;
  35. //X Movement
  36. //Direction
  37. moveDir = rightKey - leftKey
  38.  
  39. //Get XSpeed
  40. xspeed = moveDir * moveSpd;
  41.  
  42. //X Collision
  43. var _subPixel = .5;
  44. if place_meeting(x + xspeed, y, scrn_bar)
  45. {
  46.  
  47. //Move up to wall precisely
  48. var _pixelCheck = _subPixel * sign(xspeed);
  49. while !place_meeting(x + _pixelCheck, y, scrn_bar)
  50. {
  51. x += _pixelCheck;
  52. }
  53.  
  54. //Set xspeed to 0 to collide
  55. xspeed = 0;
  56. }
  57.  
  58. //Move
  59. x += xspeed;
  60.  
  61. //Y Movement
  62. //Gravity
  63. yspeed += grav;
  64.  
  65. //Jump
  66. if jumpKeyBuff && jumpCount < jumpMax
  67. {
  68. //Reset buffer
  69. jumpKeyBuff = false;
  70. jumpKeyBuffTime = 0;
  71.  
  72. //Increase number of performed jumps
  73. jumpCount++;
  74.  
  75. //Set jump hold timer
  76. jumpHoldTimer = jumpHoldFrames;
  77. }
  78.  
  79. //Cut off jump
  80. if !jumpKey
  81. {
  82. jumpHoldTimer = 0;
  83. }
  84.  
  85. //Jump based on timer/button hold
  86. if jumpHoldTimer > 0
  87. {
  88. //Constantly set yspeed to jump speed
  89. yspeed = jspeed;
  90. //Count down the timer
  91. jumpHoldTimer--;
  92. }
  93.  
  94. //Y Collision
  95. var _subPixel = .5;
  96. if place_meeting(x, y + yspeed, Pit_Bridge)
  97. {
  98. var _pixelCheck = _subPixel * sign(yspeed);
  99. while !place_meeting(x, y + _pixelCheck, Pit_Bridge)
  100. {
  101. y += _pixelCheck;
  102. }
  103.  
  104. //Set yspeed to 0 to collide
  105. yspeed = 0;
  106. }
  107.  
  108. //Set if player is on ground
  109. if yspeed >= 0 && place_meeting(x, y+1, Pit_Bridge)
  110. {
  111. onGround = true;
  112. } else {
  113. onGround = false;
  114. }
  115.  
  116. //Reset jump vars
  117. if onGround
  118. {
  119. jumpCount = 0;
  120. }
  121.  
  122. if yspeed > termVel {
  123. yspeed = termVel;
  124. }
  125.  
  126. //Move
  127. y += yspeed;
  128.  
  129. //Attacks
  130. if lowPunch
  131. {
  132. setAttack(ATK_LP) ; break
  133. }
  134. else if medPunch
  135. {
  136. setAttack(ATK_MP) ; break
  137. }
  138. else if hiPunch
  139. {
  140. setAttack(ATK_HP) ; break
  141. }
  142. else if lowKick
  143. {
  144. setAttack(ATK_LK) ; break
  145. }
  146. else if medKick
  147. {
  148. setAttack(ATK_MK) ; break
  149. }
  150. else if hiKick
  151. {
  152. setAttack(ATK_HK) ; break
  153. }
  154.  
  155. break
  156.  
  157. case STATE_ATK:
  158. //Maintain gravity when falling
  159. yspeed += grav;
  160. if onGround{
  161. xspeed = 0;
  162. }
  163. if round(image_index) >= image_number-1{
  164. state = STATE_FREE;
  165. }
  166. break
  167. }
  168.  
  169. handleSprites(GLACIUS);
  170. handleAnim();
Advertisement
Add Comment
Please, Sign In to add comment