Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ///Platformer Movement 1.1 (Squashed a bug. Sorry about that)
- //Movement Keys
- key_left= keyboard_check(vk_left);
- key_right= keyboard_check(vk_right);
- key_down= keyboard_check(vk_down);
- key_jump= keyboard_check(ord('S'));
- key_wall_jump= keyboard_check_pressed(ord('S'));
- key_action=keyboard_check(ord('A'))
- //Moving
- if key_left {x_spd = max(x_spd - to_max_xspd,-fasts);} if key_right {x_spd = min(to_max_xspd + x_spd,fasts);}
- if x_spd<0&&!key_left{x_spd= min(x_spd + 0.1,0);} if x_spd>0&&!key_right{x_spd= max(x_spd - 0.1,0);}
- //Horizontal Collision
- if place_meeting(x+x_spd,y-1,obj_wall){x_spd=0;}
- x+= x_spd;
- //Vertical Collision
- if !key_jump && ground==true {y_spd=0;}
- if (place_meeting(x,y+y_spd,oParSolid)){
- while(!place_meeting(x,round(y+sign(y_spd)),oParSolid)){y += sign(y_spd);}y_spd = 0;ground=true;}
- if place_meeting(x,y+y_spd,obj_slope) {ground=true;y-=run_spd+.2;}
- if place_meeting(x,y+y_spd,obj_wall) && running {ground=true;y--;}
- else if !place_meeting(x,y+1,oParSolid)&&ground{ground=false;/*inAir=true;*/}
- y+= y_spd;
- //Jumping (Add Jump Holding for varying heights)
- if !ground && y_spd<10 {y_spd+=grav;}
- if ground && key_jump {y_spd=-jump_spd;}
- //Image Direction
- if key_left && image_xscale==1 {image_xscale=-1}
- if key_right && image_xscale==-1 {image_xscale=1}
- //Wall Jumping
- if can_wall_jump && key_right && place_meeting(x+1,y,obj_wall) && key_wall_jump && !ground {y_spd=-jump_spd;x_spd=-2.8;}
- if can_wall_jump && key_left && place_meeting(x-1,y,obj_wall) && key_wall_jump && !ground {y_spd=-jump_spd;x_spd=2.8;}
- //Running
- if !running {fasts=walk_spd} else if running {fasts=run_spd}
- if key_action&&key_left || key_action&&key_right {running=true;} else if !key_left&&running==true ||!key_right && running==true {running=false;}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement