40 lines
785 B
C
40 lines
785 B
C
#include <stdbool.h>
|
|
#include <stdio.h>
|
|
#include "SDL2/SDL_timer.h"
|
|
#include "game.h"
|
|
#include "render.h"
|
|
#include "camera.h"
|
|
|
|
GameState *Game_New()
|
|
{
|
|
GameState *gs = calloc(1, sizeof(GameState));
|
|
|
|
if (!Render_Init(gs)) return NULL;
|
|
|
|
gs->running = true;
|
|
return gs;
|
|
}
|
|
|
|
void Game_Update(GameState *gs)
|
|
{
|
|
vec3 move;
|
|
glm_vec3_zero(move);
|
|
const float speed = 0.3f;
|
|
if (gs->input.w) move[0] = speed;
|
|
else if (gs->input.s) move[0] = -speed;
|
|
if (gs->input.a) move[1] = speed;
|
|
else if (gs->input.d) move[1] = -speed;
|
|
if (gs->input.q) move[2] = speed;
|
|
else if (gs->input.e) move[2] = -speed;
|
|
glm_vec3_add(gs->camera.position, move, gs->camera.position);
|
|
|
|
Camera_UpdateVectors(&gs->camera);
|
|
SDL_Delay(5);
|
|
}
|
|
|
|
void Game_Destroy(GameState *gs)
|
|
{
|
|
Render_Destroy(gs);
|
|
free(gs);
|
|
}
|