Yume Project 3.0
Touhou-inspired Danmaku game made in C only
Chargement...
Recherche...
Aucune correspondance
game_state.h
Aller à la documentation de ce fichier.
1
5#pragma once
6
7#include "core/input.h"
8#include "coroutine/cosched.h"
9#include "ecs/pool.h"
10#include "systems/button.h"
11#include "systems/score.h"
12#include <raylib.h>
13#include "../systems/screen.h"
14
37
38typedef struct GameContext GameContext;
39
49typedef struct GameState {
50 void (*init)(GameContext *ctx);
51 void (*update)(GameContext *ctx);
52 void (*draw)(GameContext *ctx);
53 void (*cleanup)(GameContext *ctx);
55
86
97extern void gamestate_initialize(GameContext *ctx, StateID state);
98
108
116
125
133extern void gamestate_change_state(GameContext *ctx, StateID stateID);
134
137extern GameState state_test;
GameState state_menu_keybinds
StateID
Les différents états du programme On trouve les menus, le stage, les différentes pages de texte.
Definition game_state.h:20
@ __END_MENU__
Definition game_state.h:29
@ STATE_GAME_OVER
Definition game_state.h:32
@ STATE_MENU_TITLE
Definition game_state.h:25
@ STATE_MOONLIGHT
Definition game_state.h:31
@ __BEGIN_MENU__
Definition game_state.h:23
@ STATE_VICTORY
Definition game_state.h:33
@ STATE_EXTRA
Definition game_state.h:35
@ STATE_MENU_SETTINGS
Definition game_state.h:26
@ STATE_TEST
Definition game_state.h:34
@ STATE_MENU_KEYBINDS
Definition game_state.h:27
@ STATE_NONE
Definition game_state.h:21
GameState state_test
GameState state_moonlight
void pauseListener(GameContext *ctx)
Détecte si le menu pause doit être activé et si oui gêre sa logique. Cette fonction doit être appellé...
void gamestate_update(GameContext *ctx)
Appelée chaque frame pour mettre à jour l'état courant.
GameState state_menu_settings
GameState state_menu_title
void gamestate_initialize(GameContext *ctx, StateID state)
Initialise le système d'états et bascule vers l'état demandé.
void pauseMenu(GameContext *ctx)
Affiche et le menu de pause.
void gamestate_change_state(GameContext *ctx, StateID stateID)
Demande une transition vers un autre état de jeu.
GameState state_game_over
GameState state_victory
Definition button.h:18
Definition cosched.h:8
Un GameContext contient l'ensemble des variables globales du jeu à un moment donné....
Definition game_state.h:64
float volume_bgm
Definition game_state.h:83
Pool * pool
Definition game_state.h:75
ButtonSystem button
Definition game_state.h:71
float volume_sfx
Definition game_state.h:84
int pause
Definition game_state.h:80
ScreenSystem screen
Definition game_state.h:73
int debug
Definition game_state.h:79
StateID currentStateID
Definition game_state.h:65
StateID nextStateID
Definition game_state.h:66
InputSystem input
Definition game_state.h:70
CoSched sched
Definition game_state.h:77
ScoreSystem score
Definition game_state.h:72
GameState * currentState
Definition game_state.h:67
Un GameState représente un état du jeu. Chaque GameState dispose de 4 fonctions, passée par pointeurs...
Definition game_state.h:49
void(* update)(GameContext *ctx)
Definition game_state.h:51
void(* init)(GameContext *ctx)
Definition game_state.h:50
void(* cleanup)(GameContext *ctx)
Definition game_state.h:53
void(* draw)(GameContext *ctx)
Definition game_state.h:52
Système d'entrée complet contenant keybinds et états courants des touches.
Definition input.h:43
La pool est la structure qui contient l'Entity Component System Elle gêre les différentes composantes...
Definition pool.h:42
Definition score.h:4
Definition screen.h:3