Yume Project 3.0
Touhou-inspired Danmaku game made in C only
Chargement...
Recherche...
Aucune correspondance
Référence du fichier common.h

Composants communs à toutes les entités (Position, Tag). Plus de détails...

#include "ecs/component.h"
#include "ecs/ecs.h"
#include <raylib.h>
#include <stdbool.h>
#include <stdint.h>

Aller au code source de ce fichier.

Classes

struct  Position
struct  Uid

Macros

#define BOUNDS_X   100
#define BOUNDS_Y   50

Définitions de type

typedef EntityType Tag
typedef struct Position Position
typedef Entity Owner

Énumérations

enum  EntityType {
  ID_INVALID = -1 , ENT_PLAYER , ENT_ENEMY , ENT_BOSS ,
  ENT_ENEMY_SHOT , ENT_PLAYER_SHOT , ENT_ENEMY_LASER , ENT_PLAYER_LASER ,
  ENT_LOOSE_LASER , ENT_PARTICLE , ENT_BACKGROUND
}

Fonctions

 DEFINE_COMPONENT_MANAGER (Uid, MAX_ENTITIES)
bool Position_is_out_of_bounds (Position *pos)
 Renvoie si la position est dans le cadre du jeu.
void Position_set_position (Position *pos, float x, float y)
 Met une valeur de position.
Entity Position_create (Pool *p, float x, float y, float angle)
 Crée une entité avec une position.
void Owner_bind (Pool *p, Entity PositionId, Entity ParticleId)
 Ajoute un owner à une entité
void Owner_update (Pool *p)
 Met à jour la position de toutes les entitées qui ont un owner en copiant celle de leur owner.
bool Tag_in_array (Tag tag, Tag *array, int size)

Description détaillée

Composants communs à toutes les entités (Position, Tag).

Ce module définit les composants de base partagés par la majorité des entités :

  • Position : coordonnées 2D et angle de direction
  • Tag : type de l'entité (joueur, ennemi, bullet...)
  • Owner : Une entité qui possède un owner copie sa position à chaque frame, puis meurt quand l'owner meurt

Il fournit aussi les utilitaires de vérification des limites du cadre de jeu.

Documentation des macros

◆ BOUNDS_X

#define BOUNDS_X   100

Marge pour la largeur du cadre de jeu

◆ BOUNDS_Y

#define BOUNDS_Y   50

Marge pour la hauteur du cadre de jeu

Documentation des définitions de type

◆ Owner

typedef Entity Owner

◆ Position

typedef struct Position Position

◆ Tag

typedef EntityType Tag

Documentation du type de l'énumération

◆ EntityType

enum EntityType
Valeurs énumérées
ID_INVALID 
ENT_PLAYER 
ENT_ENEMY 
ENT_BOSS 
ENT_ENEMY_SHOT 
ENT_PLAYER_SHOT 
ENT_ENEMY_LASER 
ENT_PLAYER_LASER 
ENT_LOOSE_LASER 
ENT_PARTICLE 
ENT_BACKGROUND 

Documentation des fonctions

◆ DEFINE_COMPONENT_MANAGER()

DEFINE_COMPONENT_MANAGER ( Uid ,
MAX_ENTITIES  )

◆ Owner_bind()

void Owner_bind ( Pool * p,
Entity PositionId,
Entity ParticleId )
extern

Ajoute un owner à une entité

Paramètres
ppool courante (toutes les données de l'ECS)
PositionIdl'id de l'entité qui deviendra owner
ParticleIdl'id de l'entité soumise à l'owner

◆ Owner_update()

void Owner_update ( Pool * p)

Met à jour la position de toutes les entitées qui ont un owner en copiant celle de leur owner.

Paramètres
ppool courante (toutes les données de l'ECS)

◆ Position_create()

Entity Position_create ( Pool * p,
float x,
float y,
float angle )
extern

Crée une entité avec une position.

Paramètres
ppool courante (toutes les données de l'ECS)
xcoordonnée x de l'entité à créer
ycoordonnée y de l'entité à créer
anglel'angle de l'entité à créer
Renvoie
l'id de l'entité qui vient d'être créée

◆ Position_is_out_of_bounds()

bool Position_is_out_of_bounds ( Position * pos)
extern

Renvoie si la position est dans le cadre du jeu.

Le cadre du jeu est délimité par les macros PANEL définies dans core/screen.h Il est aussi bounded par les macros BOUND_[X/Y] définies dans components/common.h

Paramètres
posComposant Position à vérifier
Renvoie
true si la position est hors du cadre, faux sinon

◆ Position_set_position()

void Position_set_position ( Position * pos,
float x,
float y )
extern

Met une valeur de position.

Paramètres
posComposant Position à modifier
xcoordonnée x
ycoordonnée y

◆ Tag_in_array()

bool Tag_in_array ( Tag tag,
Tag * array,
int size )