From aa97147dcccad246a82f9eefd2e07f4ede248de9 Mon Sep 17 00:00:00 2001 From: Tristan Roux Date: Tue, 3 Dec 2019 18:54:29 +0100 Subject: [PATCH] Adding prefabs --- .vscode/settings.json | 6 ++++++ include/runner.h | 2 +- lib/gamacon | 2 +- prefabs/game_scene.gcprefab | 0 prefabs/player.gcprefab | 4 ++++ src/game_loader.c | 7 +++++-- src/scenes/game_scene.c | 6 +++++- 7 files changed, 22 insertions(+), 5 deletions(-) create mode 100644 .vscode/settings.json create mode 100644 prefabs/game_scene.gcprefab create mode 100644 prefabs/player.gcprefab diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..d62da65 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,6 @@ +{ + "files.associations": { + "position_component.h": "c", + "movable_component.h": "c" + } +} \ No newline at end of file diff --git a/include/runner.h b/include/runner.h index eb21083..df556cb 100644 --- a/include/runner.h +++ b/include/runner.h @@ -11,4 +11,4 @@ #include "scene.h" int start_game(void); -gc_scene *create_game_scene(void); \ No newline at end of file +gc_scene *create_game_scene(gc_engine *engine); \ No newline at end of file diff --git a/lib/gamacon b/lib/gamacon index 7964f4e..cae301c 160000 --- a/lib/gamacon +++ b/lib/gamacon @@ -1 +1 @@ -Subproject commit 7964f4ead3d798d97056fce7ecab5f04da29c0ef +Subproject commit cae301c417e99788ec85c4087936b9a8639d285c diff --git a/prefabs/game_scene.gcprefab b/prefabs/game_scene.gcprefab new file mode 100644 index 0000000..e69de29 diff --git a/prefabs/player.gcprefab b/prefabs/player.gcprefab new file mode 100644 index 0000000..c12ad5e --- /dev/null +++ b/prefabs/player.gcprefab @@ -0,0 +1,4 @@ +0: +PositionComponent 0,0 +MovableComponent Q D Z +TextureRenderer assets/sprites/bck_layer1.png \ No newline at end of file diff --git a/src/game_loader.c b/src/game_loader.c index 036cc28..1996751 100644 --- a/src/game_loader.c +++ b/src/game_loader.c @@ -11,9 +11,12 @@ int start_game(void) { gc_engine *engine = engine_create("Runner"); - gc_scene *scene = create_game_scene(); + gc_scene *scene; - if (!engine || !scene) + if (!engine) + return (ERROR); + scene = create_game_scene(engine); + if (!scene) return (ERROR); engine->change_scene(engine, scene); while (engine->is_open(engine)) { diff --git a/src/scenes/game_scene.c b/src/scenes/game_scene.c index 63c6e8a..d537964 100644 --- a/src/scenes/game_scene.c +++ b/src/scenes/game_scene.c @@ -6,17 +6,21 @@ */ #include "scene.h" +#include "prefab.h" #include static const char *textures[] = {"assets/sprites/bck_layer1.png", \ "assets/sprites/bck_layer2.png", "assets/sprites/bck_layer3.png", \ "assets/sprites/bck_layer4.png", NULL}; -gc_scene *create_game_scene(void) +gc_scene *create_game_scene(gc_engine *engine) { gc_scene *scene = scene_create(textures); + gc_entity *entity; if (!scene) return (NULL); + entity = prefab_load(engine, "prefabs/player.gcprefab"); + scene->add_entity(scene, entity); return (scene); } \ No newline at end of file