diff options
-rw-r--r-- | README.md | 10 | ||||
-rw-r--r-- | TODO.md | 1 | ||||
-rw-r--r-- | src/game.c | 22 |
3 files changed, 32 insertions, 1 deletions
@@ -11,6 +11,16 @@ Running the game: - 386 or later - Some RAM! (TBD) +The game can be controlled by keyboard. + +| Key | Action | +| --- | --- | +| Cursor up | Jump | +| Cursor left | Move left | +| Cursor right | Move Right | +| P | Pause / resume game | +| ESC | Exit the game | + Development: - GNU Make @@ -10,7 +10,6 @@ - sound - libmikmod - screens - - pause - intro, new game - input - joystick? @@ -40,6 +40,7 @@ static uint8_t stage; static uint8_t time; static uint8_t pickaxe; static uint8_t gameover; +static uint8_t pause; static void wait_time(uint16_t frames) { @@ -121,6 +122,9 @@ static void run_gameover() void run_game() { + pause = 0; + gameover = 0; + lives = GAME_LIVES_START; score = 0; stage = 0; @@ -164,6 +168,24 @@ void run_game() if (hud) hud_render(); + if (keys[KEY_P]) + { + /* pause / resume */ + pause ^= 1; + + /* wait for the key to be released */ + while (keys[KEY_P]) + wait_vsync(); + + if (pause) + timer_stop(); + else + timer_resume(); + } + + if (pause) + continue; + /* erase first the last we draw */ player_erase(); entities_erase(); |