Adding game overs

This commit is contained in:
AnonymusRaccoon
2020-03-09 15:37:42 +01:00
parent 7b0c4f7f9a
commit e567dd7ac9
7 changed files with 83 additions and 1 deletions
+2 -1
View File
@@ -234,7 +234,8 @@ add_executable(My3D
src/components/game_display.c
src/systems/game_display_system.c
src/teams/absent.c
src/teams/forgot.c include/teams.h)
src/teams/forgot.c include/teams.h
src/systems/game_manager_system.c include/systems/game_manager_system.h)
add_compile_options(-W -Wall -Wextra -Wshadow)
Binary file not shown.

After

Width:  |  Height:  |  Size: 186 KiB

+12
View File
@@ -0,0 +1,12 @@
//
// Created by anonymus-raccoon on 3/9/20.
//
#ifndef _GAME_MANAGER_SYSTEM_H_
#define _GAME_MANAGER_SYSTEM_H_
#include "system.h"
const gc_system game_manager_system;
#endif //_GAME_MANAGER_SYSTEM_H_
+13
View File
@@ -0,0 +1,13 @@
<gc_scene>
<data>
<sprite name="panel" src="assets/ui/panel.png" />
<sprite name="button_background" src="assets/ui/button_background.png" />
<font src="assets/fonts/roboto.ttf" />
</data>
<gc_entities>
<panel src="panel" x="50%" y="45%" width="300" height="69%"/>
<text text="Game Over" x="50%" y="25%" resize="false"/>
<button text="Retry" x="50%" y="60%" click="start_button" color="black" width="200" resize="false" />
<button text="Exit" x="50%" y="72%" click="quit" color="black" width="200" resize="false" />
</gc_entities>
</gc_scene>
+15
View File
@@ -0,0 +1,15 @@
<gc_scene>
<data>
<sprite name="panel" src="assets/ui/panel.png" />
<sprite name="button_background" src="assets/ui/button_background.png" />
<sprite name="martine" src="assets/ui/martine_a_epi_marseille.png" />
<font src="assets/fonts/roboto.ttf" />
</data>
<gc_entities>
<panel src="panel" x="25%" y="45%" width="300" height="69%"/>
<text text="Game Over" x="25%" y="25%" resize="false"/>
<panel src="martine" x="75%" y="50%" width="20%" height="%" />
<button text="Retry" x="25%" y="60%" click="start_button" color="black" width="200" resize="false" />
<button text="Exit" x="25%" y="72%" click="quit" color="black" width="200" resize="false" />
</gc_entities>
</gc_scene>
+2
View File
@@ -14,10 +14,12 @@
#include "teams.h"
#include "components/game_display.h"
#include "components/game_manager.h"
#include "systems/game_manager_system.h"
int register_customcmps(gc_engine *engine)
{
engine->add_component(engine, &game_manager);
engine->add_system(engine, &game_manager_system);
engine->add_component(engine, &game_display);
engine->add_system(engine, &game_display_system);
engine->add_component(engine, &teams_component);
+39
View File
@@ -0,0 +1,39 @@
//
// Created by anonymus-raccoon on 3/9/20.
//
#include "system.h"
#include "components/game_manager.h"
#include "prefab.h"
static void update_entity(gc_engine *engine, void *system, gc_entity *entity, \
float dtime)
{
struct game_manager *manager = GETCMP(entity, game_manager);
gc_scene *gameover_scene = NULL;
if (manager->happiness <= 0)
gameover_scene = scene_create(engine, "prefabs/go/happiness.gcprefab");
if (manager->stupidity >= 100)
gameover_scene = scene_create(engine, "prefabs/go/stupidity.gcprefab");
if (gameover_scene)
engine->change_scene(engine, gameover_scene);
}
static void destroy(void *system)
{
(void)system;
}
const gc_system game_manager_system = {
name: "game_cycle",
component_name: "game_manager",
size: sizeof(gc_system),
ctr: NULL,
dtr: NULL,
check_dependencies: &system_check_dependencies,
update_entity: &update_entity,
destroy: &destroy
};