![]() |
Yume Project 3.0
Touhou-inspired Danmaku game made in C only
|
fonctions de détection des collisions des entités Plus de détails...
Aller au code source de ce fichier.
Macros | |
| #define | MAX_COLLISIONS 100000 |
Fonctions | |
| bool | Entity_is_hit (Pool *p, Entity entity, flagList *flags) |
| Vérifie si une entité est touchée par au moins une autre entitée. | |
| bool | Entity_find_hitters (Pool *p, Entity entity, flagList *flags, Entity foundCollisions[], int *nbCollisions) |
| Vérifie si une entité est touchée par d'autres entitées et les liste dans un tableau. | |
| bool | Damage_entity_by_enemy_projectile (Pool *p, Entity entity) |
| Verifie si l'entité est touchée par un projectile ennemi, et lui inflige des dégâts. | |
| bool | Damage_player_by_enemy_projectile (GameContext *ctx, Entity player) |
| Verifie si l'entité (utilisé surtout pour le joueur) est touchée par un projectile ennemi, et lui inflige des dégâts. | |
| bool | collision_circle_add_scaled_with_sprite (Pool *p, Entity entity) |
| Crée automatiquement une hitbox circulaire d'une taille basée sur le sprite d'une entité | |
| bool | CheckCircleRotatedRect (Vector2 cPos, float radius, Vector2 rPos, float w, float h, float angle) |
| Vérifie si un cercle et un rectangle sont en collision. | |
| static bool | Entity_is_hit_by_rectangle (Pool *p, Entity entity, flagList *laserFlags, Entity foundCollisions[], int *nbcollisions) |
| static bool | Entity_is_hit_by_circle (Pool *p, Entity entity, flagList *BulletFlags, Entity foundCollisions[], int *nbcollisions) |
fonctions de détection des collisions des entités
| #define MAX_COLLISIONS 100000 |
|
extern |
Vérifie si un cercle et un rectangle sont en collision.
| cPos | coordonnées 2D du cercle |
| radius | rayon du cercle |
| rPos | coordonnées 2D du coin du rectangle |
| w | largeur du rectangle |
| h | longueur du rectangle |
| angle | angle de rotation du rectangle |
Crée automatiquement une hitbox circulaire d'une taille basée sur le sprite d'une entité
| p | pool courante (toutes les données de l'ECS) |
| entity | l'entité cible |
Verifie si l'entité est touchée par un projectile ennemi, et lui inflige des dégâts.
| p | pool courante (toutes les données de l'ECS) |
| entity | l'entité dont on cherche à savoir si on doit lui infliger des dégâts |
|
extern |
Verifie si l'entité (utilisé surtout pour le joueur) est touchée par un projectile ennemi, et lui inflige des dégâts.
| ctx | GameContext courant (toutes les données du jeu) |
| player | L'ID de l'entité testé (le joueur) |
changer ctx par pool, pas besoin de tout le contexte
changer pour trouver le joueur automatiquement
|
extern |
Vérifie si une entité est touchée par d'autres entitées et les liste dans un tableau.
Vérifie si des cercles ou rectangles de collision ayant les flags de la flagList passée en paramètre touche une entité spécifiée, puis les ajoute à un tableau.
| p | pool courante (toutes les données de l'ECS) |
| entity | l'entité dont on cherche à savoir si elle est en collision |
| flags | les entités en collision avec l'entité que l'on étudie doivent disposer de ces flags, sinon elles sont ignorées |
| foundCollisions | Un tableau d'ID, vide au départ, qui sera rempli avec toutes les entitées en collisions avec l'entité étudiée et remplissant le critère des flags |
| nbCollisions | Un pointeur qui prendra la valeur du nombre de collisions valides trouvées |
Vérifie si une entité est touchée par au moins une autre entitée.
Vérifie si un cercle ou rectangle de collision ayant les flags de la flagList passée en paramètre touche une entité spécifiée
| p | pool courante (toutes les données de l'ECS) |
| entity | l'entité dont on cherche à savoir si elle est en collision |
| flags | les entités en collision avec l'entitée que l'on étudie doivent disposer de ces flags, sinon elles sont ignorées |
|
static |