Advertisement
allerost

Solid for Player

Nov 19th, 2015
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.14 KB | None | 0 0
  1. /// Inizialise Variables
  2.  
  3. grav = 1;
  4. spd = 4;
  5. jspd = 12;
  6. hspd = 0;
  7. vspd = 0;
  8.  
  9.  
  10.  
  11. /// Platform physics
  12.  
  13. var rkey = keyboard_check(vk_right);
  14. var lkey = keyboard_check(vk_left);
  15. var jkey = keyboard_check(vk_up);
  16.  
  17. //check for ground
  18. if (place_meeting(x ,y+1 , obj_solid))
  19. {
  20. vspeed = 0;
  21.  
  22. //jumping
  23. if(jkey)
  24. {
  25. vspd = -jspd;
  26. }
  27. }
  28. else
  29. {
  30. //gravity
  31. if (vspd < 10)
  32. {
  33. vspd += grav;
  34. }
  35. }
  36. //moving right
  37. if (rkey)
  38. {
  39. hspd = spd;
  40. }
  41. //moving left
  42. if (lkey)
  43. {
  44. hspd = -spd;
  45. }
  46.  
  47. //checking for not moving
  48. if ((!rkey && !lkey) || (rkey && lkey))
  49. {
  50. hspd = 0;
  51. }
  52.  
  53. //horisontal collision
  54. if (place_meeting(x+hspd, y, obj_solid))
  55. {
  56. while (!place_meeting(x+sign(hspd), y, obj_solid))
  57. {
  58. x+= sign(hspd);
  59. }
  60. hspd = 0;
  61. }
  62. //moving horizontally
  63. x += hspd;
  64.  
  65. //horisontal Verticlly
  66. if (place_meeting(x, y+vspd, obj_solid))
  67. {
  68. while (!place_meeting(x, y+sign(vspd), obj_solid))
  69. {
  70. y+= sign(vspd);
  71. }
  72. vspd = 0;
  73. }
  74. //moving Verticlly
  75. y += vspd;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement