X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?p=ansitris;a=blobdiff_plain;f=src%2Fgame.c;h=e8b47f3ee2f4d20cf658678317bfeb37f9f44981;hp=f1622aaf8f3264c0ab93e57955a629b26b692ce7;hb=0bdf1f5608fc18fe9d999bd400e951df9342c831;hpb=b9e8d87bd8fe53a3ca4dae3020c3df7bc117f7c7 diff --git a/src/game.c b/src/game.c index f1622aa..e8b47f3 100644 --- a/src/game.c +++ b/src/game.c @@ -1,4 +1,5 @@ #include +#include #include #include "game.h" #include "pieces.h" @@ -46,7 +47,10 @@ int init_game(void) int i, j; uint16_t *row = scr; + tick_interval = 1000; + ansi_clearscr(); + ansi_cursor(0); /* fill the screen buffer, and draw */ for(i=0; i= tick_interval) { + next_pos[0] = (pos[0] + 1) % PF_ROWS; + dt -= tick_interval; + prev_tick = msec; + } + if(memcmp(pos, next_pos, sizeof pos) != 0) { + ansi_setcursor(pos[0], (PF_XOFFS + pos[1]) * 2); + wrchar(CHAR(' ', BLACK, WHITE)); + + memcpy(pos, next_pos, sizeof pos); + ansi_setcursor(pos[0], (PF_XOFFS + pos[1]) * 2); + wrchar(CHAR(' ', RED, RED)); + + fflush(stdout); + } + return tick_interval - dt; +} + +void game_input(int c) +{ switch(c) { case 27: quit = 1; break; + case 'a': + if(pos[1] > 0) { + next_pos[1] = pos[1] - 1; + } + break; + + case 'd': + if(pos[1] < PF_COLS - 1) { + next_pos[1] = pos[1] + 1; + } + break; + default: break; }