diff --git a/src/level.c b/src/level.c index 7b3d9b0..31b9c02 100644 --- a/src/level.c +++ b/src/level.c @@ -71,6 +71,7 @@ bool Fly(struct Game *game, struct TM_Action *action, enum TM_ActionState state) } game->level.derpy_y-=0.004; if (game->level.derpy_y>0.2) return false; + game->level.handle_input=true; return true; } @@ -238,6 +239,7 @@ void Level_Load(struct Game *game) { game->level.sheet_pos = 0; game->level.sheet_speed = 2; game->level.sheet_tmp = 0; + game->level.handle_input = false; al_clear_to_color(al_map_rgb(0,0,0)); if (game->level.current_level!=1) Moonwalk_Load(game); else { @@ -278,6 +280,16 @@ int Level_Keydown(struct Game *game, ALLEGRO_EVENT *ev) { game->gamestate = GAMESTATE_PAUSE; game->loadstate = GAMESTATE_LEVEL; Pause_Load(game); + } else { + if (game->level.handle_input) { + if (ev->keyboard.keycode == ALLEGRO_KEY_UP) { + game->level.derpy_y -= 0.05; + } else if (ev->keyboard.keycode == ALLEGRO_KEY_DOWN) { + game->level.derpy_y += 0.05; + } + if (game->level.derpy_y > 0.5) game->level.sheet_speed=2; + else game->level.sheet_speed=0; + } } return 0; } diff --git a/src/main.h b/src/main.h index b6a8968..ac27f87 100644 --- a/src/main.h +++ b/src/main.h @@ -60,6 +60,7 @@ struct Level { float speed; float bg_pos, st_pos, fg_pos, cl_pos; float derpy_x, derpy_y; + bool handle_input; int sheet_rows, sheet_cols, sheet_pos, sheet_tmp, sheet_speed; ALLEGRO_BITMAP *background, *stage, *foreground, *clouds; ALLEGRO_BITMAP *welcome;