Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //get player input
- key_right = keyboard_check(vk_right);
- key_left = -keyboard_check(vk_left);
- key_jump = keyboard_check_pressed(vk_space);
- //react to imput
- move = key_right + key_left;
- hsp = move * movespeed;
- if (vsp < 10) vsp += grav;
- if (place_meeting(x,y+1,obj_wall))
- {
- vsp = key_jump * -jumpspeed
- }
- //horizontal collisions
- if (place_meeting(x+hsp,y,obj_wall))
- {
- while(!place_meeting(x+sign(hsp),y,obj_wall))
- {
- x += sign(hsp);
- }
- hsp = 0;
- }
- x += hsp;
- //vertical collisions
- if (place_meeting(x,y+vsp,obj_wall))
- {
- while(!place_meeting(x,y+sign(vsp),obj_wall))
- {
- y += sign(vsp);
- }
- vsp = 0;
- }
- y += vsp;
- //animate
- if (move!=0) image_xscale = move;
- if (place_meeting(x,y+1,obj_wall))
- {
- if (move!=0) sprite_index = spr_player_run; else sprite_index = spr_player_idle;
- }
- //else
- //{
- if (vsp < 0) sprite_index = spr_player_jump //; else sprite_index = spr_player_fall;
- if (vsp > 0) sprite_index = spr_player_jump
- //}
- if(place_meeting(x,y+1,obj_wall)){
- //logic to change sprite to run or idle
- }
- else if (vsp<0 or vsp>0){
- //logic to change to jump
- }
- else{
- /*have some kind of debugging info here to detect if none of the above conditions are
- being satisfied. Maybe turn the sprite into some other sprite completely so you know
- something went wrong. That would help know what part is causing the problem.*/
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement