mirror of
https://github.com/zoriya/My3D.git
synced 2026-05-29 17:12:14 +00:00
Adding game overs
This commit is contained in:
+2
-1
@@ -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 |
@@ -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_
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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);
|
||||
|
||||
@@ -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
|
||||
};
|
||||
Reference in New Issue
Block a user