start keeping track of inputs and ticks

This commit is contained in:
Josh Holtrop 2013-02-15 00:04:51 -05:00
parent 3d05584a7e
commit c9fde558e7

View File

@ -5,12 +5,23 @@ import derelict.opengl.glu;
enum int WIDTH = 800; enum int WIDTH = 800;
enum int HEIGHT = 600; enum int HEIGHT = 600;
enum uint SDL_TICKS_PER_GAME_TICK = 1000u / 20u;
class Player class Player
{ {
public: public:
int x; int x;
int y; int y;
uint tick;
};
class Inputs
{
public:
bool left;
bool right;
bool up;
bool down;
}; };
void init() void init()
@ -63,6 +74,8 @@ int main(char[][] args)
p1.y = HEIGHT / 2; p1.y = HEIGHT / 2;
p2.x = WIDTH / 2 + 100; p2.x = WIDTH / 2 + 100;
p2.y = HEIGHT / 2; p2.y = HEIGHT / 2;
int pcontrol = 0;
Player players[] = [p1, p2];
if (SDL_Init(SDL_INIT_EVERYTHING)) if (SDL_Init(SDL_INIT_EVERYTHING))
{ {
@ -80,20 +93,72 @@ int main(char[][] args)
return 2; return 2;
} }
uint last_sdl_tick;
init(); init();
SDL_Event event; SDL_Event event;
Inputs current_inputs = new Inputs();
bool exit = false;
for (;;) for (;;)
{ {
if (SDL_GetTicks() >= (last_sdl_tick + SDL_TICKS_PER_GAME_TICK))
{
players[pcontrol].tick++;
last_sdl_tick += SDL_TICKS_PER_GAME_TICK;
}
if (SDL_PollEvent(&event)) if (SDL_PollEvent(&event))
{ {
if (event.type == SDL_QUIT) switch (event.type)
break;
else if (event.type == SDL_KEYDOWN)
{ {
if (event.key.keysym.sym == SDLK_ESCAPE) case SDL_QUIT:
exit = true;
break;
case SDL_KEYDOWN:
switch (event.key.keysym.sym)
{
case SDLK_ESCAPE:
exit = true;
break; break;
case SDLK_a:
current_inputs.left = true;
break;
case SDLK_d:
current_inputs.right = true;
break;
case SDLK_w:
current_inputs.up = true;
break;
case SDLK_s:
current_inputs.down = true;
break;
default:
break;
}
break;
case SDL_KEYUP:
switch (event.key.keysym.sym)
{
case SDLK_a:
current_inputs.left = false;
break;
case SDLK_d:
current_inputs.right = false;
break;
case SDLK_w:
current_inputs.up = false;
break;
case SDLK_s:
current_inputs.down = false;
break;
default:
break;
}
break;
default:
break;
} }
} }
if (exit)
break;
display(p1, p2); display(p1, p2);
} }