Advertisement
markkurvers

Untitled

Oct 28th, 2021
1,207
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //PLAYER.STEP
  2. key_right = keyboard_check(ord("D"));
  3. key_up = keyboard_check(ord("W"));
  4. key_left = keyboard_check(ord("A"));
  5. key_down = keyboard_check(ord("S"));
  6.  
  7. if (key_left || key_right)
  8. {
  9.     sprite_index = spr_p1_walk;
  10. }
  11. else
  12. {
  13.     sprite_index = spr_p1_idle;
  14. }
  15.  
  16. move = key_right - key_left;
  17. hsp = move * movespeed + hsp_carry;
  18. hsp_carry=0
  19. if(move!=0) image_xscale = move;
  20.  
  21. //water check
  22. if(place_meeting(x, y, obj_water))
  23. {  
  24.     grav = gravity_swimming;
  25.     vsp = lerp(vsp, 0, 0.01);
  26.     //state
  27.    
  28.     if(!are_we_in_water)
  29.     {
  30.         vsp /= 4;
  31.     }
  32.     are_we_in_water=true;
  33.    
  34.  
  35. }  
  36. else
  37. {
  38.     grav = gravity_normal;
  39.     are_we_in_water=false;
  40. }
  41.  
  42.  
  43.  
  44. if(place_meeting(x,y+1, obj_wall)||place_meeting(x,y+1, obj_moving_platform1)||place_meeting(x,y+1, obj_pushable_block))&&key_up==1{
  45.    
  46.     vsp = key_up * - jumpspeed;//}      //jumping mechanic
  47. }
  48. if(are_we_in_water&&key_up)
  49. {
  50.     vsp = key_up * - (jumpspeed/3);     //jumping in water
  51. }
  52.  
  53.  
  54.  
  55. //*/
  56. if(vsp < 10) vsp += grav;           //gravity
  57.  
  58.  
  59.  
  60. //moving platform collision;
  61. var _movingPlatform = instance_place(x,y+max(1, vsp), obj_moving_platform1);
  62. if(_movingPlatform!=noone && bbox_bottom>_movingPlatform.bbox_top)
  63. {
  64.     if(vsp>0)
  65.     {
  66.         while(!place_meeting(x, y + sign(vsp), obj_moving_platform1))
  67.         {
  68.             y+=sign(vsp);    
  69.         }
  70.         vsp=0;
  71.     }
  72.     x+=_movingPlatform.move_x;
  73.     y+=_movingPlatform.move_y;
  74. }
  75.  
  76. //WALL + MOVING PLATFORM COLLISION
  77. var block_on_movingPlatform = instance_place(x,y+max(1, vsp), obj_pushable_block);
  78. if(block_on_movingPlatform!=noone && bbox_bottom>block_on_movingPlatform.bbox_top)
  79. {
  80.     if(vsp>0)
  81.     {
  82.         while(!place_meeting(x, y + sign(vsp), obj_pushable_block))
  83.         {
  84.             y+=sign(vsp);    
  85.         }
  86.         vsp=0;
  87.     }
  88.  
  89.     x+=block_on_movingPlatform.hsp_carry;
  90.     y+=block_on_movingPlatform.vsp_carry;
  91. }
  92. else
  93. {
  94.     scr_push_p1();
  95. }
  96.  
  97. scr_move(hsp,vsp);
  98.  
  99. //JUMP ANIMATION
  100. if (!place_meeting(x,y+1,obj_wall) && !place_meeting(x,y+1,obj_moving_platform1))
  101. {
  102.     if (sign(vsp) > 0)
  103.     {
  104.         sprite_index = spr_p1_fall;
  105.     } else if (sign(vsp) < 0) {
  106.         sprite_index = spr_p1_jump;
  107.     }
  108. }
  109.  
  110. //Ladder
  111.  
  112.  
  113. if (place_meeting( x,y, obj_ladder))
  114. {
  115.     //vsp = 0;
  116.     if(key_up)
  117.     {
  118.         vsp = -2;
  119.         sprite_index=spr_p1_climb;
  120.     }
  121.     else if(key_down)
  122.     {
  123.         sprite_index=spr_p1_climb;
  124.         vsp = 2;
  125.     }
  126. }
  127.  
  128. //portal system
  129. var pad, dest;
  130. pad=instance_place(x,y,obj_pad_portal);
  131. if(place_meeting(x, y, pad) && pad != noone)
  132. {
  133.     if(keyboard_check_pressed(ord("E")))
  134.     {
  135.         for(i=0;i<instance_number(obj_dest_portal);i++)
  136.         {
  137.             dest = instance_find(obj_dest_portal, i);
  138.             if(pad.index==dest.index)
  139.             {
  140.  
  141.                 pad.sprite_index = spr_pad_portal_end;
  142.                 pad.image_index = 0;
  143.                 x=dest.x;
  144.                 y=dest.y;
  145.                 //visible = false;
  146.                 break;
  147.             }
  148.         }
  149.     }
  150. }
  151.  
  152.  
  153.  
  154.  
  155. //SCR_MOVE
  156.  
  157. function scr_move(hsp,vsp){
  158. //horizontal collision
  159. if(place_meeting(x+hsp, y, obj_wall))
  160. {
  161.     while(!place_meeting(x+sign(hsp), y, obj_wall))
  162.     {
  163.         x+=sign(hsp);  
  164.     }
  165.     hsp = 0;   
  166. }
  167.  
  168. if(place_meeting(x+hsp, y, obj_wall_heaven))
  169. {
  170.     while(!place_meeting(x+sign(hsp), y, obj_wall))
  171.     {
  172.         x+=sign(hsp);  
  173.     }
  174.     hsp = 0;   
  175. }
  176. if(place_meeting(x+hsp, y, obj_wall_recolor))
  177. {
  178.     while(!place_meeting(x+sign(hsp), y, obj_wall))
  179.     {
  180.         x+=sign(hsp);  
  181.     }
  182.     hsp = 0;   
  183. }
  184.  
  185.  
  186. if(place_meeting(x+hsp, y, obj_door))
  187. {
  188.     while(!place_meeting(x+sign(hsp), y, obj_door))
  189.     {
  190.         x+=sign(hsp);  
  191.     }
  192.     hsp = 0;   
  193. }
  194.  
  195. x+= hsp;
  196.  
  197.  
  198. //vertical collision
  199.  
  200. if(place_meeting(x, y+vsp, obj_wall))
  201. {
  202.     while(!place_meeting(x, y+sign(vsp), obj_wall))
  203.     {
  204.         y+=sign(vsp);  
  205.     }
  206.     vsp = 0;   
  207. }
  208.  
  209.  
  210. if(place_meeting(x, y+vsp, obj_door))
  211. {
  212.     while(!place_meeting(x, y+sign(vsp), obj_door))
  213.     {
  214.         y+=sign(vsp);  
  215.     }
  216.     vsp = 0;   
  217. }
  218.  
  219. y += vsp;
  220. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement