From 30227eef5623e28633ccc7fd85ce0863621767fd Mon Sep 17 00:00:00 2001 From: Sheldon Lee Date: Tue, 23 Jun 2020 02:34:29 +0100 Subject: [PATCH] slight changes --- main.c | 52 ++++++++++++++++++++++++++++++++++++++++++++++------ makefile | 4 ++-- 2 files changed, 48 insertions(+), 8 deletions(-) diff --git a/main.c b/main.c index 5564bb7..b0b21e5 100644 --- a/main.c +++ b/main.c @@ -7,16 +7,21 @@ #include "vect.h" static bool running = true; +static bool do_step = true; +static Vect2i cursor = {0, 0}; void handleInput(char ch); void showLastPressed(char ch); +void showCurPos(); + int main() { // init initscr(); raw(); + noecho(); // Colors // allows for transparancy when color values in init_pair(); are set to -1 or, no pair specified @@ -27,6 +32,8 @@ int main() init_pair(1, COLOR_BLUE, COLOR_WHITE); // text init_pair(2, COLOR_YELLOW, -1); + // cursor + init_pair(3, COLOR_RED, COLOR_RED); // doesn't wait for user to input. // timeout(100) waits for 100ms for input. @@ -40,13 +47,14 @@ int main() getmaxyx(stdscr, height, width); // framerate of the game - const int FRAME_RATE = 144; + const int FRAME_RATE = 30; const float FRAME_TIME = 1.f/(float)FRAME_RATE; Grid grid; initGrid(&grid, width, height); randomizeGrid(&grid); + float t = 0; while (running) { clock_t start_t = clock(); @@ -57,12 +65,16 @@ int main() // draw grid drawGrid(&grid); // draw overlays - attron(COLOR_PAIR(2)); showLastPressed(ch); - attroff(COLOR_PAIR(2)); + showCurPos(); + // cursor + attron(COLOR_PAIR(3)); + mvaddch(cursor.y, cursor.x, ' '); + attroff(COLOR_PAIR(3)); + refresh(); - updateGrid(&grid); + if (do_step) updateGrid(&grid); usleep(pow(10,6)*(FRAME_TIME-t)); float t = (float) (clock()-start_t) / (float) CLOCKS_PER_SEC; @@ -77,9 +89,37 @@ void showLastPressed(char ch) { static char lastc = ' '; if (ch != -1) lastc = ch; - mvprintw(0, 0, "LastPressed: %c", lastc); + attron(COLOR_PAIR(2)); + mvprintw(0, 0, "Last Pressed: %c", lastc); + attroff(COLOR_PAIR(2)); } + +void showCurPos() +{ + mvprintw(1, 0, "curpos: %i, %i", cursor.x, cursor.y); +} + void handleInput(char ch) { - if (ch == 'q') running = false; + switch (ch) { + case 'q': + running = false; + break; + case ' ': + do_step ^= 1; + break; + case 'h': + moveVect2i(&cursor, -1, 0); + break; + case 'j': + moveVect2i(&cursor, 0, 1); + break; + case 'k': + moveVect2i(&cursor, 0, -1); + break; + case 'l': + moveVect2i(&cursor, 1, 0); + break; + } + } diff --git a/makefile b/makefile index 4cffbd8..95cedcd 100644 --- a/makefile +++ b/makefile @@ -1,4 +1,4 @@ LDFLAGS=-lncurses -main: main.c grid.c vect.c - gcc main.c grid.c vect.c -o main ${LDFLAGS} +main: *.c + gcc *.c -o main ${LDFLAGS}