Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- jump_grav = -9;
- if !place_meeting(x,y+1,block_items) // if I am in the air
- {
- grav = .5; // set the gravity to .5
- vspd += grav; // add .5 to our vspd once every step
- }
- else // else if I am on the ground
- {
- grav = 0; // set the gravity to 0
- vspd = 0; // set vspd to 0 to stop moving
- if keyboard_check_pressed(vk_up) // since I am on the ground, I can handle jumping here, so check if I pressed up
- {
- vspd = jump_grav; // set the vspd to a negative number, which will make us jump
- }
- }
- if keyboard_check_released(vk_up) // if I released the up button while in the in air
- {
- vspd *= .5; // divide our vspd by 2, creating a smooth type of variable jumping
- }
- if vspd > 8 // I don't want to fall too fast, so lets limit our vspd
- {
- vspd = 8; // note that if you want to be able to fall fast, you can remove this without affecting the code (but I wouldn't)
- }
- repeat(abs(vspd)) // I want to check for a collision every pixel, so I use a repeat() function to check every pixel while falling
- {
- if !place_meeting(x,y+sign(vspd),block_items) // vspd can be negative or positive, so I check 1 pixel above or below, depending on which direction I am going
- {
- y += sign(vspd); // add to our y value 1 pixel at a time, letting use check for a collision every pixel
- }
- else // else if I hit a block
- {
- vspd = 0; // stop moving vertically
- }
- }
- hspd = (keyboard_check(vk_right)-keyboard_check(vk_left))*4; // a nice little trick that will set our hspd to +4 or -4 depending what button I am holding
- repeat(abs(hspd)) // same as the vspd, I want to check for a collision at every pixel I move
- {
- if !place_meeting(x+sign(hspd),y,block_items) // if there is no block to our left or right
- {
- x += sign(hspd); // add to our x value depending on which way I am going
- } else if place_meeting(x+sign(hspd),y,bi_allow_colide){
- x += sign(hspd);
- hspd = 0;
- }
- if (hspd==-4)
- {
- lastwalk = 1;
- }
- if (hspd==4)
- {
- lastwalk = 2;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement