Yume Project 3.0
Touhou-inspired Danmaku game made in C only
Chargement...
Recherche...
Aucune correspondance
obj.h
Aller à la documentation de ce fichier.
1#pragma once
2
3#include "common.h"
4#include "ecs.h"
5#include "flags.h"
6#include <stdbool.h>
7
8#define OBJ_POS(pool, entity) obj_GetX(pool, entity), obj_GetY(pool, entity)
9
14void obj_Delete(Pool *p, Entity objId);
15
21void obj_SetVisible(Pool *p, Entity objId, bool visible);
22
28bool obj_IsVisible(Pool *p, Entity objId);
29
35void obj_SetRenderPriority(Pool *p, Entity objId, int renderPriority);
36
43
50
51/*----------------------------------------------------*/
52
58void obj_SetX(Pool *p, Entity objId, float x);
59
65void obj_SetY(Pool *p, Entity objId, float y);
66
73void obj_SetPosition(Pool *p, Entity objId, float x, float y);
74
80void obj_SetAngle(Pool *p, Entity objId, float angle);
81
88void obj_SetScaleX(Pool *p, Entity objId, float scalex);
89
95void obj_SetScaleY(Pool *p, Entity objId, float scaley);
96
103void obj_SetScale(Pool *p, Entity objId, float scalex, float scaley);
104
112void obj_SetColor(Pool *p, Entity objId, float r, float g, float b);
113
119void obj_SetAlpha(Pool *p, Entity objId, float alpha);
120
126float obj_GetX(Pool *p, Entity objId);
127
133float obj_GetY(Pool *p, Entity objId);
134
140Vector2 obj_GetPosition(Pool *p, Entity objId);
141
147float obj_GetAngle(Pool *p, Entity objId);
148
154float obj_GetScaleX(Pool *p, Entity objId);
155
161float obj_GetScaleY(Pool *p, Entity objId);
162
168Vector2 obj_GetScale(Pool *p, Entity objId);
169
175Color obj_GetColor(Pool *p, Entity objId);
176
182float obj_GetAlpha(Pool *p, Entity objId);
183
184
185
186/*----------------------------------------------------*/
187
193void obj_SetAcceleration(Pool *p, Entity objId, float accel);
194
200void obj_SetSpeed(Pool *p, Entity objId, float speed);
201
207void obj_SetAngularSpeed(Pool *p, Entity objId, float angvel);
208
214void obj_SetForceX(Pool *p, Entity objId, float forcex);
215
221void obj_SetForceY(Pool *p, Entity objId, float forcey);
222
229void obj_SetForce(Pool *p, Entity objId, float forcex, float forcey);
230
237void obj_SetVelocity(Pool *p, Entity objId, float velX, float velY);
238
244void obj_SetMaxSpd(Pool *p, Entity objId, float maxspd);
245
251void obj_SetMinSpd(Pool *p, Entity objId, float minspd);
252
258
264
270float obj_GetSpeed(Pool *p, Entity objId);
271
278
279/*----------------------------------------------------*/
280
286int obj_GetLife(Pool *p, Entity objId);
287
294
300bool obj_IsDead(Pool *p, Entity objId);
301
302
308void obj_SetLife(Pool *p, Entity objId, int life);
309
315void obj_SetMaxLife(Pool *p, Entity objId, int maxLife);
316
317/*----------------------------------------------------*/
318
325
331void obj_SetTag(Pool *p, Entity objId, Tag tag);
332
338void obj_SetHitboxRadius(Pool *p, Entity objID, float radius);
339
340/*----------------------------------------------------*/
341
347void obj_AddFlag(Pool *p, Entity objId, FlagType flag);
348
354void obj_RemoveFlag(Pool *p, Entity objId, FlagType flag);
Composants communs à toutes les entités (Position, Tag).
EntityType Tag
Definition common.h:40
EntityType
Definition common.h:27
Types et déclarations utilisés dans l'ECS.
uint32_t Entity
Une entité est un indice.
Definition ecs.h:20
Les flags sont des critères qu'une entité peut avoir ou ne pas avoir. Chaque flag active un comportem...
FlagType
Identificateurs uniques de certaines propriétés.
Definition flags.h:18
float obj_GetSpeed(Pool *p, Entity objId)
Récupère la vitesse d'un objet.
void obj_SetRenderPriority(Pool *p, Entity objId, int renderPriority)
Définit la priorité de rendu d'un objet.
Vector2 obj_GetPosition(Pool *p, Entity objId)
Récupère la position d'un objet.
void obj_SetVelocity(Pool *p, Entity objId, float velX, float velY)
Définit la vitesse de déplacement d'un objet.
void obj_Delete(Pool *p, Entity objId)
Supprime un objet du pool.
float obj_GetAngle(Pool *p, Entity objId)
Récupère l'angle d'un objet.
void obj_SetVisible(Pool *p, Entity objId, bool visible)
Définit la visibilité d'un objet.
float obj_GetAlpha(Pool *p, Entity objId)
Récupère la transparence d'un objet.
void obj_SetColor(Pool *p, Entity objId, float r, float g, float b)
Définit la couleur d'un objet.
void obj_SetAngularSpeed(Pool *p, Entity objId, float angvel)
Définit la vitesse angulaire d'un objet.
bool obj_IsDead(Pool *p, Entity objId)
Vérifie si un objet est mort.
void obj_UnsetMinSpd(Pool *p, Entity objId)
Supprime la vitesse minimale d'un objet.
void obj_RemoveFlag(Pool *p, Entity objId, FlagType flag)
Supprime un drapeau d'un objet.
Tag obj_GetTag(Pool *p, Entity objId)
Récupère le tag d'un objet.
bool obj_IsVisible(Pool *p, Entity objId)
Vérifie si un objet est visible.
void obj_SetTag(Pool *p, Entity objId, Tag tag)
Définit le tag d'un objet.
void obj_SetScaleX(Pool *p, Entity objId, float scalex)
Définit la taille d'un objet.
float obj_GetAngularSpeed(Pool *p, Entity objId)
Récupère la vitesse angulaire d'un objet.
Color obj_GetColor(Pool *p, Entity objId)
Récupère la couleur d'un objet.
void obj_AddFlag(Pool *p, Entity objId, FlagType flag)
Ajoute un drapeau à un objet.
void obj_SetSpeed(Pool *p, Entity objId, float speed)
Définit la vitesse d'un objet.
float obj_GetScaleX(Pool *p, Entity objId)
Récupère la taille X d'un objet.
float obj_GetScaleY(Pool *p, Entity objId)
Récupère la taille Y d'un objet.
float obj_GetX(Pool *p, Entity objId)
Récupère la position X d'un objet.
void obj_SetMaxSpd(Pool *p, Entity objId, float maxspd)
Définit la vitesse maximale d'un objet.
void obj_SetMinSpd(Pool *p, Entity objId, float minspd)
Définit la vitesse minimale d'un objet.
void obj_SetY(Pool *p, Entity objId, float y)
Définit la position Y d'un objet.
void obj_SetAlpha(Pool *p, Entity objId, float alpha)
Définit la transparence d'un objet.
void obj_SetHitboxRadius(Pool *p, Entity objID, float radius)
Définit le rayon de la hitbox d'un objet.
void obj_SetForceY(Pool *p, Entity objId, float forcey)
Définit la force Y d'un objet.
void obj_SetAcceleration(Pool *p, Entity objId, float accel)
Définit l'accélération d'un objet.
void obj_SetX(Pool *p, Entity objId, float x)
Définit la position X d'un objet.
void obj_SetForceX(Pool *p, Entity objId, float forcex)
Définit la force X d'un objet.
void obj_SetPosition(Pool *p, Entity objId, float x, float y)
Définit la position d'un objet.
void obj_SetScale(Pool *p, Entity objId, float scalex, float scaley)
Définit la taille d'un objet.
int obj_GetRenderPriority(Pool *p, Entity objId)
Récupère la priorité de rendu d'un objet.
Vector2 obj_GetScale(Pool *p, Entity objId)
Récupère la taille d'un objet.
void obj_SetMaxLife(Pool *p, Entity objId, int maxLife)
Définit la vie maximale d'un objet.
void obj_SetAngle(Pool *p, Entity objId, float angle)
Définit l'angle d'un objet.
int obj_GetLife(Pool *p, Entity objId)
Récupère la vie d'un objet.
void obj_UnsetMaxSpd(Pool *p, Entity objId)
Supprime la vitesse maximale d'un objet.
float obj_GetY(Pool *p, Entity objId)
Récupère la position Y d'un objet.
int obj_GetMaxLife(Pool *p, Entity objId)
Récupère la vie maximale d'un objet.
void obj_SetLife(Pool *p, Entity objId, int life)
Définit la vie d'un objet.
EntityType obj_GetType(Pool *p, Entity objId)
Récupère le type d'un objet.
void obj_SetScaleY(Pool *p, Entity objId, float scaley)
Définit la taille Y d'un objet.
void obj_SetForce(Pool *p, Entity objId, float forcex, float forcey)
Définit la force d'un objet.
La pool est la structure qui contient l'Entity Component System Elle gêre les différentes composantes...
Definition pool.h:42