Migrated overlay/input handling functions to game(.h/.c).
This commit is contained in:
parent
fa9c61cb89
commit
7b3fee4b4f
53
game.c
Normal file
53
game.c
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
#include "game.h"
|
||||||
|
#include "grid.h"
|
||||||
|
#include "vect.h"
|
||||||
|
|
||||||
|
static Grid grid;
|
||||||
|
|
||||||
|
static bool running = true;
|
||||||
|
static bool do_step = true;
|
||||||
|
static Vect2i cursor = {0, 0};
|
||||||
|
|
||||||
|
void initGame()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
bool isRunning() { return running; }
|
||||||
|
|
||||||
|
void handleInput(char ch)
|
||||||
|
{
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void showCurPos()
|
||||||
|
{
|
||||||
|
attron(COLOR_PAIR(2));
|
||||||
|
mvprintw(1, 0, "curpos: %i, %i", cursor.x, cursor.y);
|
||||||
|
attron(COLOR_PAIR(3));
|
||||||
|
mvaddch(cursor.y, cursor.x, ' ');
|
||||||
|
attroff(COLOR_PAIR(3));
|
||||||
|
attroff(COLOR_PAIR(2));
|
||||||
|
}
|
||||||
|
|
||||||
|
void endGame()
|
||||||
|
{
|
||||||
|
}
|
18
game.h
Normal file
18
game.h
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
|
#ifndef GAME_H
|
||||||
|
#define GAME_H
|
||||||
|
|
||||||
|
void initGame();
|
||||||
|
|
||||||
|
bool isRunning();
|
||||||
|
|
||||||
|
void handleInput(char ch);
|
||||||
|
|
||||||
|
// Overlay
|
||||||
|
// Draws cursor and cursor position
|
||||||
|
void showCurPos();
|
||||||
|
|
||||||
|
bool endgame();
|
||||||
|
|
||||||
|
#endif
|
55
main.c
55
main.c
@ -1,21 +1,18 @@
|
|||||||
#include <stdio.h>
|
|
||||||
#include <ncurses.h>
|
#include <ncurses.h>
|
||||||
|
// Delay and timing.
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <math.h>
|
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
|
// math
|
||||||
|
#include <math.h>
|
||||||
|
|
||||||
|
// game
|
||||||
|
#include "game.h"
|
||||||
#include "grid.h"
|
#include "grid.h"
|
||||||
#include "vect.h"
|
#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 showLastPressed(char ch);
|
||||||
|
|
||||||
void showCurPos();
|
|
||||||
|
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
// init
|
// init
|
||||||
@ -56,7 +53,7 @@ int main()
|
|||||||
|
|
||||||
|
|
||||||
float t = 0;
|
float t = 0;
|
||||||
while (running) {
|
while (isRunning()) {
|
||||||
clock_t start_t = clock();
|
clock_t start_t = clock();
|
||||||
char ch = getch();
|
char ch = getch();
|
||||||
|
|
||||||
@ -67,14 +64,9 @@ int main()
|
|||||||
// draw overlays
|
// draw overlays
|
||||||
showLastPressed(ch);
|
showLastPressed(ch);
|
||||||
showCurPos();
|
showCurPos();
|
||||||
// cursor
|
|
||||||
attron(COLOR_PAIR(3));
|
|
||||||
mvaddch(cursor.y, cursor.x, ' ');
|
|
||||||
attroff(COLOR_PAIR(3));
|
|
||||||
|
|
||||||
|
|
||||||
refresh();
|
refresh();
|
||||||
if (do_step) updateGrid(&grid);
|
if (true) updateGrid(&grid);
|
||||||
|
|
||||||
usleep(pow(10,6)*(FRAME_TIME-t));
|
usleep(pow(10,6)*(FRAME_TIME-t));
|
||||||
float t = (float) (clock()-start_t) / (float) CLOCKS_PER_SEC;
|
float t = (float) (clock()-start_t) / (float) CLOCKS_PER_SEC;
|
||||||
@ -94,34 +86,3 @@ void showLastPressed(char ch)
|
|||||||
attroff(COLOR_PAIR(2));
|
attroff(COLOR_PAIR(2));
|
||||||
}
|
}
|
||||||
|
|
||||||
void showCurPos()
|
|
||||||
{
|
|
||||||
attron(COLOR_PAIR(2));
|
|
||||||
mvprintw(1, 0, "curpos: %i, %i", cursor.x, cursor.y);
|
|
||||||
attroff(COLOR_PAIR(2));
|
|
||||||
}
|
|
||||||
|
|
||||||
void handleInput(char ch)
|
|
||||||
{
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
Loading…
Reference in New Issue
Block a user