mirror of
https://gitlab.com/dosowisko.net/libsuperderpy.git
synced 2025-02-01 11:06:44 +01:00
better keyboard handling in level
This commit is contained in:
parent
73edf91b6d
commit
61b862b858
1 changed files with 15 additions and 10 deletions
25
src/level.c
25
src/level.c
|
@ -88,6 +88,20 @@ void Level_Draw(struct Game *game) {
|
||||||
}
|
}
|
||||||
if (game->level.current_level!=1) Moonwalk_Draw(game);
|
if (game->level.current_level!=1) Moonwalk_Draw(game);
|
||||||
else {
|
else {
|
||||||
|
|
||||||
|
struct ALLEGRO_KEYBOARD_STATE keyboard;
|
||||||
|
al_get_keyboard_state(&keyboard);
|
||||||
|
if (game->level.handle_input) {
|
||||||
|
if (al_key_down(&keyboard, ALLEGRO_KEY_UP)) {
|
||||||
|
game->level.derpy_y -= 0.005;
|
||||||
|
}
|
||||||
|
if (al_key_down(&keyboard, ALLEGRO_KEY_DOWN)) {
|
||||||
|
game->level.derpy_y += 0.005;
|
||||||
|
}
|
||||||
|
if (game->level.derpy_y > 0.5) game->level.sheet_speed=1;
|
||||||
|
else game->level.sheet_speed=0;
|
||||||
|
}
|
||||||
|
|
||||||
al_clear_to_color(al_map_rgb(0,0,0));
|
al_clear_to_color(al_map_rgb(0,0,0));
|
||||||
al_draw_bitmap(game->level.clouds, (-game->level.cl_pos)*al_get_bitmap_width(game->level.clouds), 0, 0);
|
al_draw_bitmap(game->level.clouds, (-game->level.cl_pos)*al_get_bitmap_width(game->level.clouds), 0, 0);
|
||||||
al_draw_bitmap(game->level.clouds, (1+(-game->level.cl_pos))*al_get_bitmap_width(game->level.clouds), 0, 0);
|
al_draw_bitmap(game->level.clouds, (1+(-game->level.cl_pos))*al_get_bitmap_width(game->level.clouds), 0, 0);
|
||||||
|
@ -295,22 +309,13 @@ int Level_Keydown(struct Game *game, ALLEGRO_EVENT *ev) {
|
||||||
game->gamestate = GAMESTATE_PAUSE;
|
game->gamestate = GAMESTATE_PAUSE;
|
||||||
game->loadstate = GAMESTATE_LEVEL;
|
game->loadstate = GAMESTATE_LEVEL;
|
||||||
Pause_Load(game);
|
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=1;
|
|
||||||
else game->level.sheet_speed=0;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Level_ProcessLogic(struct Game *game, ALLEGRO_EVENT *ev) {
|
void Level_ProcessLogic(struct Game *game, ALLEGRO_EVENT *ev) {
|
||||||
if (game->level.current_level==1) TM_HandleEvent(ev);
|
if (game->level.current_level==1) TM_HandleEvent(ev);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Level_Preload(struct Game *game) {
|
void Level_Preload(struct Game *game) {
|
||||||
|
|
Loading…
Reference in a new issue