jtmm2/src/main.c

87 lines
1.5 KiB
C
Raw Normal View History

2020-09-12 10:08:01 +02:00
#include <gint/display.h>
2020-09-10 15:44:26 +02:00
#include <gint/keyboard.h>
2020-09-11 18:07:53 +02:00
#include <gint/std/string.h>
#include "main.h"
#include "debug.h"
#include "init.h"
#include "vec.h"
#include "player.h"
2020-09-11 18:07:53 +02:00
#include "level.h"
#include "camera.h"
#include "input.h"
2020-09-10 15:44:26 +02:00
int main(void)
{
2020-09-11 10:50:11 +02:00
init(); /* initialize gint */
2020-09-15 12:18:24 +02:00
/* main game loop */
play_level(0);
/* return to menu */
return 1;
}
int play_level(int level_id)
{
/* create player */
Player player = {
.pos = {16, 16},
.hbox = {7, 7},
.origin = {4, 4}
};
2020-09-11 18:07:53 +02:00
/* create level */
Level level = {
.width = 0,
.height = 0
2020-09-11 18:07:53 +02:00
};
/* create camera */
Camera camera = {
.pos = {DWIDTH, DHEIGHT},
.target = &player.pos,
#ifdef FX9860G
.speed = 0.0005
#endif /* FX9860G */
#ifdef FXCG50
.speed = 0.05
#endif /* FXCG50 */
2020-09-11 18:07:53 +02:00
};
/* create input manager */
Input input;
input.keys[K_LEFT] = KEY_LEFT;
input.keys[K_RIGHT] = KEY_RIGHT;
input.keys[K_UP] = KEY_UP;
input.keys[K_DOWN] = KEY_DOWN;
//vec_cpy(&camera.pos, player.pos);
while ((int)camera.pos.x != (int)player.pos.x)
{
step_event(&player, &level, &camera, &input);
draw_event(&player, &level, &camera, &input);
}
2020-09-15 12:18:24 +02:00
return 0;
2020-09-10 15:44:26 +02:00
}
2020-09-11 18:07:53 +02:00
void step_event(Player *player, Level *level, Camera *camera, Input *input)
2020-09-11 18:07:53 +02:00
{
input_step(input);
2020-09-11 18:07:53 +02:00
player_step(player);
level_step(level);
camera_step(camera);
}
void draw_event(Player *player, Level *level, Camera *camera, Input *input)
2020-09-11 18:07:53 +02:00
{
dclear(C_WHITE);
level_draw(level, camera);
player_draw(player, camera);
#ifdef DEBUG
camera_draw(camera);
input_draw(input);
#endif
2020-09-11 18:07:53 +02:00
dupdate();
}