#include #include #include #include "main.h" #include "debug.h" #include "init.h" #include "vec.h" #include "player.h" #include "level.h" #include "camera.h" #include "input.h" int main(void) { init(); /* initialize gint */ /* 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} }; /* create level */ Level level = { .width = 0, .height = 0 }; /* create camera */ Camera camera = { .pos = {DWIDTH, DHEIGHT}, .target = &player.pos, #ifdef FX9860G .speed = 0.0005 #endif /* FX9860G */ #ifdef FXCG50 .speed = 0.05 #endif /* FXCG50 */ }; /* 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); } return 0; } void step_event(Player *player, Level *level, Camera *camera, Input *input) { input_step(input); player_step(player); level_step(level); camera_step(camera); } void draw_event(Player *player, Level *level, Camera *camera, Input *input) { dclear(C_WHITE); level_draw(level, camera); player_draw(player, camera); #ifdef DEBUG camera_draw(camera); input_draw(input); #endif dupdate(); }