Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //CREATE
- key_left = ord('A');
- key_right = ord('D');
- key_jump = ord('W');
- hsp = 0;
- hspmax = 4;
- jump = 0;
- grav = 0;
- jumpheight = -12; //How high can the player spring
- jumpamount = 2; //Amount of jumps (double jump in this case)
- climbheight = 3; //How many pixels can the player climb
- //STEP
- //Change hsp
- var hspadd;
- hspadd = keyboard_check(key_right) - keyboard_check(key_left);
- hsp += hspadd;
- //Limit hsp
- if abs(hsp) > hspmax
- {
- hsp = sign(hsp)*hspmax;
- }
- //Smooth movement
- if hspadd = 0
- {
- hsp -= sign(hsp);
- }
- //Movement
- repeat(abs(round(hsp)))
- {
- for (i=0;i<=climbheight;i++)
- {
- if place_free(x+sign(hsp),y-i)
- {
- x += sign(hsp);
- y -= i;
- break;
- }
- if i = climbheight
- {
- hsp = 0;
- break;
- }
- }
- }
- //Gravity
- grav += 1;
- repeat(abs(round(grav)))
- {
- if place_free(x,y+sign(grav))
- {
- y += sign(grav);
- }
- else
- {
- grav = 0;
- break;
- }
- }
- //Double jump
- if !place_free(x,y+1)
- {
- jump = 0;
- }
- else
- {
- if jump < 2
- {
- jump = 1;
- }
- }
- if keyboard_check_pressed(key_jump) and jump < jumpamount
- {
- jump += 1;
- grav = jumpheight;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement