Advertisement
Guest User

Movement

a guest
Dec 7th, 2018
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //Input
  2. key_up = max(keyboard_check(vk_up), keyboard_check(ord("W")), 0);
  3. key_down = max(keyboard_check(vk_down), keyboard_check(ord("S")), 0);
  4. key_left = max(keyboard_check(vk_left), keyboard_check(ord("A")), 0);
  5. key_right = max(keyboard_check(vk_right), keyboard_check(ord("D")), 0);
  6.  
  7. //Movement
  8. move_dir = point_direction(0,0,key_right-key_left,key_down-key_up);
  9.  
  10. // Sprint Movement
  11.  
  12. // Option 1 = X Sprint
  13.  
  14. if (keyboard_check_released(ord("X"))) {
  15.     walkSpeed = 2;
  16. }
  17. if (keyboard_check(ord("X"))) {
  18.     walkSpeed = 2.5;
  19. }
  20. // Option 2 = Shift Sprint
  21.  
  22. if (keyboard_check_released(vk_shift)) {
  23.     walkSpeed = 2;
  24. }
  25. if (keyboard_check(vk_shift))  {
  26.     walkSpeed = 2.5;
  27. }
  28.  
  29. if(key_left||key_right||key_up||key_down){
  30.     //This allows diagonal movement at the same speed as horizontal movement
  31.     hsp=lengthdir_x(walkSpeed,move_dir);
  32.     vsp=lengthdir_y(walkSpeed,move_dir);
  33. }else{
  34.     hsp = 0;
  35.     vsp = 0;
  36. }
  37.    
  38.  
  39. //Collisions
  40. if(place_meeting(x+hsp,y,oWall)){
  41.     while(!place_meeting(x+sign(hsp),y,oWall)){
  42.         x+=sign(hsp);  
  43.     }
  44.     hsp = 0;
  45. }
  46. x+=hsp;
  47.  
  48. if(place_meeting(x,y+vsp,oWall)){
  49.     while(!place_meeting(x,y+sign(vsp),oWall)){
  50.         y+=sign(vsp);  
  51.     }
  52.     vsp = 0;
  53. }
  54. y+=vsp;
  55.  
  56. //Change sprite based on movement
  57. if(y>yprevious){
  58.     sprite_index = spr_plr_walk_down;  
  59. }else if(y<yprevious){
  60.     sprite_index = spr_plr_walk_up;
  61. }
  62. if(x>xprevious){
  63.     sprite_index = spr_plr_walk_right;
  64. }else if(x<xprevious){
  65.     sprite_index = spr_plr_walk_left;
  66. }
  67.  
  68. //Haven't moved
  69. if(x==xprevious && y==yprevious){
  70.     image_speed = 0;   
  71. }else{
  72.     image_speed = walkSpeed/6; 
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement