Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /// platform physics
- var rkey = keyboard_check(vk_right);
- var lkey = keyboard_check(vk_left);
- var jkey = keyboard_check_pressed(vk_up);
- // Check for ground
- if (place_meeting(x, y+1, obj_solid)) {
- airjump = 1;
- vspd = 0;
- // Jumping
- if (jkey) {
- vspd = -jspd;
- }
- } else {
- //Gravity
- if (vspd < 10){
- vspd += grav;
- }
- if(keyboard_check_released(vk_up) && vspd <-4) {
- vspd = -4;
- }
- //Check for airjump
- if (airjump > 0){
- if (jkey) {
- vspd = -jspd;
- airjump -= 1;
- }
- }
- }
- // Moving right
- if (rkey) {
- hspd = spd
- }
- // Moving left
- if (lkey) {
- hspd = -spd;
- }
- // Check for not moving
- if ((!lkey && !rkey) || (rkey && lkey)) {
- hspd = 0;
- }
- // Horizontal collisions
- if (place_meeting(x+hspd, y, obj_solid)) {
- while (!place_meeting(x+sign(hspd), y, obj_solid)) {
- x += sign(hspd);
- }
- hspd = 0;
- }
- //Move horizontally
- x += hspd;
- // Verical collisions
- if (place_meeting(x, y+vspd, obj_solid)) {
- while (!place_meeting(x, y+sign(vspd), obj_solid)) {
- y += sign(vspd);
- }
- vspd = 0;
- }
- // Move vertically
- y += vspd;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement