forked from kdx/jtmm2-old
Shaping out the games structure
This commit is contained in:
parent
a496f428ce
commit
d95c1b6cb3
|
@ -0,0 +1,16 @@
|
|||
#ifndef _DEF_CAMERA
|
||||
#define _DEF_CAMERA
|
||||
|
||||
#include "vec.h"
|
||||
|
||||
typedef struct Camera
|
||||
{
|
||||
Vec position;
|
||||
Vec *follow; /* the target position to lerp on */
|
||||
float speed; /* camera lerp speed with 0 < speed <= 1 */
|
||||
} Camera;
|
||||
|
||||
void camera_step(Camera *camera);
|
||||
/* camera is invisible */
|
||||
|
||||
#endif /* _DEF_CAMERA */
|
|
@ -0,0 +1,16 @@
|
|||
#ifndef _DEF_LEVEL
|
||||
#define _DEF_LEVEL
|
||||
|
||||
#include "camera.h"
|
||||
|
||||
typedef struct Level
|
||||
{
|
||||
unsigned char tiles[64 * 64]; /* max level size */
|
||||
unsigned int width; /* in tiles */
|
||||
unsigned int height; /* in tiles */
|
||||
} Level;
|
||||
|
||||
void level_step(Level *level);
|
||||
void level_draw(Level *level, Camera *camera);
|
||||
|
||||
#endif /* _DEF_LEVEL */
|
|
@ -0,0 +1,10 @@
|
|||
#include "player.h"
|
||||
#include "level.h"
|
||||
|
||||
#ifndef _DEF_MAIN
|
||||
#define _DEF_MAIN
|
||||
|
||||
void step_event(Player *player, Level *level, Camera *camera);
|
||||
void draw_event(Player *player, Level *level, Camera *camera);
|
||||
|
||||
#endif
|
|
@ -2,13 +2,14 @@
|
|||
#define _DEF_PLAYER
|
||||
|
||||
#include "vec.h"
|
||||
#include "camera.h"
|
||||
|
||||
typedef struct Player
|
||||
{
|
||||
Vec position;
|
||||
} Player;
|
||||
|
||||
/* draw the player */
|
||||
void draw_player(Player *player);
|
||||
void player_step(Player *player);
|
||||
void player_draw(Player *player, Camera *camera);
|
||||
|
||||
#endif
|
||||
#endif /* _DEF_PLAYER */
|
||||
|
|
|
@ -13,4 +13,4 @@ void vec_add(Vec *vector, Vec force);
|
|||
/* apply the opposite of a force on a vector */
|
||||
void vec_sub(Vec *vector, Vec force);
|
||||
|
||||
#endif
|
||||
#endif /* _DEF_VEC */
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
#include "camera.h"
|
||||
|
||||
void camera_step(Camera *camera)
|
||||
{
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
#include "level.h"
|
||||
#include "camera.h"
|
||||
|
||||
void level_step(Level *level)
|
||||
{
|
||||
}
|
||||
|
||||
void level_draw(Level *level, Camera *camera)
|
||||
{
|
||||
/* TODO */
|
||||
}
|
39
src/main.c
39
src/main.c
|
@ -1,8 +1,13 @@
|
|||
#include <gint/display.h>
|
||||
#include <gint/keyboard.h>
|
||||
#include <gint/std/string.h>
|
||||
|
||||
#include "main.h"
|
||||
#include "init.h"
|
||||
#include "vec.h"
|
||||
#include "player.h"
|
||||
#include "level.h"
|
||||
#include "camera.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
|
@ -13,10 +18,38 @@ int main(void)
|
|||
.position = (Vec){32, 32}
|
||||
};
|
||||
|
||||
dclear(C_WHITE);
|
||||
draw_player(&player);
|
||||
dupdate();
|
||||
/* create level */
|
||||
Level level = {
|
||||
.width = 0,
|
||||
.height = 0
|
||||
};
|
||||
|
||||
/* create camera */
|
||||
Camera camera = {
|
||||
.follow = &player.position
|
||||
};
|
||||
camera.position.x = player.position.x;
|
||||
camera.position.y = player.position.y;
|
||||
|
||||
/* main game loop */
|
||||
step_event(&player, &level, &camera);
|
||||
draw_event(&player, &level, &camera);
|
||||
|
||||
getkey();
|
||||
return 1;
|
||||
}
|
||||
|
||||
void step_event(Player *player, Level *level, Camera *camera)
|
||||
{
|
||||
player_step(player);
|
||||
level_step(level);
|
||||
camera_step(camera);
|
||||
}
|
||||
|
||||
void draw_event(Player *player, Level *level, Camera *camera)
|
||||
{
|
||||
dclear(C_WHITE);
|
||||
level_draw(level, camera);
|
||||
player_draw(player, camera);
|
||||
dupdate();
|
||||
}
|
||||
|
|
10
src/player.c
10
src/player.c
|
@ -1,7 +1,13 @@
|
|||
#include "player.h"
|
||||
#include <gint/display.h>
|
||||
|
||||
void draw_player(Player *player)
|
||||
#include "player.h"
|
||||
#include "camera.h"
|
||||
|
||||
void player_step(Player *player)
|
||||
{
|
||||
}
|
||||
|
||||
void player_draw(Player *player, Camera *camera)
|
||||
{
|
||||
dpixel(player->position.x, player->position.y, C_BLACK);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue