Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Friction Switch \o/
- switch(ins=instance_place(x,y,obj_grass_flat).object_index)
- {
- case obj_grass_flat:
- var_default_friction=1;
- break;
- case obj_2:
- var_default_friction=0;
- var_plat_speed=ins.hspeed;
- break;
- }
- //Reset image speed
- if (sprite_index != spr_greg_jump_R) image_speed = 0.3;
- //Maximum vspeed
- vspeed = min(vspeed, 6);
- // Movement
- var_test = (k_right - k_left);
- if (var_test == 0)
- {
- sprite_index = spr_greg_idle_R;
- if (!var_jumping) friction = (friction <= var_default_friction-var_increment_friction) ? (friction + var_increment_friction) : var_default_friction;
- }
- else
- {
- var_facing = (-(var_test - 1)/2);
- friction = (friction >= var_increment_friction) ? (friction - var_increment_friction) : 0;
- //If going right or left increase / decrease hspeed accordingly
- if (var_facing) hspeed += (hspeed >= -var_max_hspeed) ? -var_increment_hspeed : var_plat_speed;
- else hspeed += (hspeed <= var_max_hspeed) ? var_increment_hspeed : var_plat_speed;
- }
- //Run
- var_max_hspeed = (k_z || (var_jumping && abs(hspeed) > var_default_hspeed)) ? (var_defaut_hspeed*2) : var_defaut_hspeed;
- // Jumping
- if (k_up && !var_jumping)
- {
- vspeed = -11;
- gravity = var_default_gravity;
- var_jumping = true;
- friction = 0;
- }
- //Limit jump height based on how long you hold key
- if (vspeed < 0 && k_up_released) vspeed *= 0.5;
- //Landing
- if (position_meeting(x, y, obj_grass_flat))
- {
- if (vspeed > 0)
- {
- var_jumping = false;
- vspeed = 0;
- gravity = 0;
- y = instance_place(x, y, obj_grass_flat).y;
- }
- }
- else gravity = var_default_gravity;
- if (position_meeting(x, y, obj_grass_flat) && abs(hspeed) > 0) sprite_index = (k_z) ? spr_greg_run_R : spr_greg_walk_R;
- else if (var_jumping && vspeed < 0) sprite_index = spr_greg_jump_R;
- else if (vspeed > 0) sprite_index = spr_greg_fall_R;
Add Comment
Please, Sign In to add comment