Advertisement
Guest User

Step Event

a guest
Nov 15th, 2019
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /// Main actions
  2.  
  3. switch(state)
  4. {
  5.     case('IDLE'):
  6.     {
  7.         last_state = 'IDLE';
  8.         sprite_index = spr_mario_idle;
  9.         image_speed = 0;
  10.        
  11.         hsp = lerp(hsp, 0, acc * 1.5);
  12.         if (hsp < 0.09) && (hsp > -0.09)
  13.         {
  14.             hsp = 0;
  15.         }
  16.    
  17.         // Check inputs
  18.         if (input.a) && (vsp == 0) state = 'JUMPING_INIT';  
  19.         if (input.right) state = 'RIGHT';
  20.         if (input.left) state = 'LEFT';
  21.        
  22.         break;
  23.     }
  24.    
  25.     case('RIGHT'):
  26.     {
  27.         last_state = 'RIGHT';
  28.         if (hsp < 0) sprite_index = spr_mario_stop;
  29.         else sprite_index = spr_mario_walk;
  30.         image_xscale = 1;
  31.        
  32.         allow_player_movement();
  33.        
  34.         image_speed = (abs(hsp)/maxSpeed) * animationSpeed;
  35.        
  36.         // Check inputs
  37.         if (input.b)
  38.         {
  39.             maxSpeed = 4;
  40.             acc = 0.08;
  41.         }
  42.         else
  43.         {
  44.             maxSpeed = 2;
  45.             acc = 0.05;
  46.         }
  47.         if (input.a) && (vsp == 0) state = 'JUMPING_INIT';
  48.         if (input.left) state = 'LEFT';
  49.         if (hsp = 0) state = 'IDLE';
  50.         break;
  51.     }
  52.    
  53.     case('LEFT'):
  54.     {
  55.         last_state = 'LEFT';
  56.         if (hsp > 0) sprite_index = spr_mario_stop;
  57.         else sprite_index = spr_mario_walk;
  58.         image_xscale = -1;
  59.        
  60.         allow_player_movement();
  61.        
  62.         image_speed = (abs(hsp)/maxSpeed) * animationSpeed;
  63.        
  64.         // Check inputs
  65.         if (input.b)
  66.         {
  67.             maxSpeed = 4;
  68.             acc = 0.08;
  69.         }
  70.         else
  71.         {
  72.             maxSpeed = 2;
  73.             acc = 0.05;
  74.         }
  75.         if (input.a) && (vsp == 0) state = 'JUMPING_INIT';
  76.         if (input.right) state = 'RIGHT';
  77.         if (hsp = 0) state = 'IDLE';
  78.         break;
  79.     }
  80.    
  81.     case('JUMPING_INIT'):
  82.     {
  83.         sprite_index = spr_mario_jump;
  84.         image_speed = 0;
  85.         if global.grav_id = 1
  86.         vsp = -jumpSpeed;
  87.         if global.grav_id = -1
  88.         vsp = jumpSpeed;
  89.        
  90.         state = 'JUMPING';
  91.         break;
  92.     }
  93.    
  94.     case('JUMPING'):
  95.     {
  96.     if global.grav_id = 1
  97.     {
  98.         allow_player_movement();
  99.        
  100.         if (vsp < 0) && (!input.a_held) vsp = max(vsp, -jumpSpeed/2);
  101.        
  102.         if (vsp == 0)
  103.         {
  104.             if place_meeting(x, y+1, par_solid) state = last_state;
  105.         }
  106.         else
  107.         {
  108.             if place_meeting(x, y+vsp, par_solid) state = last_state;
  109.         }
  110.         }
  111.         if global.grav_id = -1
  112.     {
  113.         allow_player_movement();
  114.        
  115.         if (vsp < 0) && (!input.a_held) vsp = max(vsp, -jumpSpeed/2);
  116.        
  117.         if (vsp == 0)
  118.         {
  119.             if place_meeting(x, y-1, par_solid) state = last_state;
  120.         }
  121.         else
  122.         {
  123.             if place_meeting(x, y+vsp, par_solid) state = last_state;
  124.         }
  125.         }
  126.        
  127.         break;
  128.     }
  129.    
  130.     case("DEATH"):
  131.     {
  132.    
  133.         if (death_timer == 0)
  134.         {
  135.             global.grav = 0;
  136.             hsp = 0;
  137.             vsp = 0;
  138.         }
  139.        
  140.         death_timer++;
  141.        
  142.         sprite_index = spr_mario_death;
  143.         image_speed = 0;
  144.        
  145.         if (death_timer == room_speed/2)
  146.         {
  147.         //    global.grav = 0.3;
  148.         //    vsp = -jumpSpeed;
  149.         }
  150.        
  151.         if (death_timer > room_speed * 0.5)
  152.         {  
  153.             global.grav = 0.3;
  154.             room_restart();
  155.             global.deaths++
  156.             //global.grav = 0.3;
  157.         }
  158.         //death++
  159.         break;
  160.     }
  161. }
  162.    
  163. // Gravity
  164. if global.grav_id = 1
  165. {
  166. image_yscale = 1
  167. if (vsp < 5) vsp += global.grav;
  168. }
  169. if global.grav_id = -1
  170. {
  171. image_yscale = -1
  172. if (vsp > -5) vsp -= global.grav;
  173. }
  174. //if (vsp > -5) vsp -= global.grav;
  175.  
  176. // View controls
  177. //if (x > (view_xview + (view_wview/2))) && (sign(hsp) = 1)
  178. //    view_xview += hsp;
  179. //    
  180. //if (x <= (view_xview + 8)) && (sign(hsp) = -1)
  181. //    hsp = 0;
  182.  
  183. // Wall collisions
  184. if (state != "DEATH")
  185.     collision_and_moving(par_solid);
  186. else
  187.     collision_and_moving(noone);
  188.  
  189. // Enemy collisions
  190. if place_meeting(x, y, par_enemy)
  191. {
  192.     var _enemy = instance_place(x, y, par_enemy);
  193.     if (y < _enemy.y-8) && (_enemy.state != "DEATH") && (state != "DEATH")// From the top
  194.     {
  195.         vsp = -jumpSpeed/2;
  196.        
  197.         with(_enemy)
  198.         {
  199.             state = "DEATH";
  200.             alarm[0] = room_speed/2;
  201.         }
  202.     }
  203.     else //if (_enemy.state != "DEATH") // From sides
  204.     {
  205.         global.powerup_state -= 1;
  206.         if (global.powerup_state < 0)
  207.             state = "DEATH";
  208.     }
  209. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement