commit
d5c1b9c2f6
|
@ -1,6 +1,11 @@
|
|||
#ifndef GFX_H
|
||||
#define GFX_H
|
||||
|
||||
#define INPUT_UP 0
|
||||
#define INPUT_DOWN 1
|
||||
#define INPUT_LEFT 2
|
||||
#define INPUT_RIGHT 3
|
||||
|
||||
#include "engine.h"
|
||||
|
||||
struct gfx_state;
|
||||
|
|
|
@ -21,6 +21,7 @@ struct gfx_state* gfx_init(struct gamestate *g)
|
|||
{
|
||||
initscr();
|
||||
cbreak();
|
||||
keypad(stdscr, true);
|
||||
noecho();
|
||||
curs_set(FALSE);
|
||||
refresh();
|
||||
|
@ -116,7 +117,27 @@ int gfx_getch(struct gfx_state *s)
|
|||
nodelay(s->window, TRUE);
|
||||
while (wgetch(s->window) != ERR);
|
||||
nodelay(s->window, FALSE);
|
||||
return c;
|
||||
|
||||
switch (c)
|
||||
{
|
||||
case KEY_UP:
|
||||
return INPUT_UP;
|
||||
break;
|
||||
case KEY_DOWN:
|
||||
return INPUT_DOWN;
|
||||
break;
|
||||
case KEY_RIGHT:
|
||||
return INPUT_RIGHT;
|
||||
break;
|
||||
case KEY_LEFT:
|
||||
return INPUT_LEFT;
|
||||
break;
|
||||
|
||||
default:
|
||||
return c;
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
void gfx_sleep(int ms)
|
||||
|
|
|
@ -39,18 +39,22 @@ get_new_key:;
|
|||
switch (value) {
|
||||
case 'h':
|
||||
case 'a':
|
||||
case INPUT_LEFT:
|
||||
direction = dir_left;
|
||||
break;
|
||||
case 'l':
|
||||
case 'd':
|
||||
case INPUT_RIGHT:
|
||||
direction = dir_right;
|
||||
break;
|
||||
case 'j':
|
||||
case 's':
|
||||
case INPUT_DOWN:
|
||||
direction = dir_down;
|
||||
break;
|
||||
case 'k':
|
||||
case 'w':
|
||||
case INPUT_UP:
|
||||
direction = dir_up;
|
||||
break;
|
||||
case 'q':
|
||||
|
|
Loading…
Reference in New Issue
Block a user