Yume Project 3.0
Touhou-inspired Danmaku game made in C only
Chargement...
Recherche...
Aucune correspondance
looseLaser.h
Aller à la documentation de ce fichier.
1#pragma once
2
3#define MAX_LOOSE_NODES 1000
4#define DURATION_ETERNAL 20000
5#define MAX_LOOSE_LASER 282
6
7#include "systems/timer.h"
8#include "ecs/component.h"
9#include <raymath.h>
10
11#include "components/sprite.h"
12#include "components/common.h"
13
14typedef struct Pool Pool;
30
32
33DECLARE_GETTER(Loose_laser, Entity *, looseNodes)
34DECLARE_SETTER_GETTER(Loose_laser, int, looseNodeCount)
35DECLARE_SETTER_GETTER(Loose_laser, float, looseTargetLength)
36DECLARE_SETTER_GETTER(Loose_laser, float, looseWidth)
37
38
51
61
80Entity loose_laser_create(Pool * pool, int x, int y, float speed, float length, float width, int duration, Color color);
81
93Entity node_create(Pool * pool, float x, float y, float radius);
94
105
117void draw_loose_laser(Loose_laser *laser, PositionManager *positionManager);
118
125void draw_all_loose_lasers(Loose_laserManager *looseManager, PositionManager *positionManager);
Composants communs à toutes les entités (Position, Tag).
Macros nécessaire à la création de nouvelles composantes de l'ECS.
#define DECLARE_GETTER(Component, type, champ)
Definition component.h:111
#define DEFINE_COMPONENT_MANAGER(Type, Number)
Créé un composant dans l'ECS.
Definition component.h:62
#define DECLARE_SETTER_GETTER(Component, type, champ)
Definition component.h:121
uint32_t Entity
Une entité est un indice.
Definition ecs.h:20
void loose_lasers_update_all(Pool *pool)
Met à jour tous les loose lasers de la Pool.
void draw_all_loose_lasers(Loose_laserManager *looseManager, PositionManager *positionManager)
Dessine tous les loose lasers actifs du manager.
Entity loose_laser_create(Pool *pool, int x, int y, float speed, float length, float width, int duration, Color color)
Crée et attache un Loose_laser à une nouvelle entité.
Entity node_create(Pool *pool, float x, float y, float radius)
Crée un node (entité) pour un loose laser.
bool loose_laser_update(Pool *pool, Loose_laser *laser)
Met à jour un loose laser pour une frame.
#define MAX_LOOSE_LASER
Definition looseLaser.h:5
void Loose_laser_destroy(Pool *pool, Entity id)
Détruit un Loose_laser et libère ses ressources.
void draw_loose_laser(Loose_laser *laser, PositionManager *positionManager)
Dessine un Loose_laser.
Composante du sprite.
Représente un loose laser — un filament composé de plusieurs nodes.
Definition looseLaser.h:22
Timer looseTimer
Definition looseLaser.h:27
Entity * looseNodes
Definition looseLaser.h:23
int looseNodeCount
Definition looseLaser.h:24
Color looseColor
Definition looseLaser.h:28
float looseTargetLength
Definition looseLaser.h:25
float looseWidth
Definition looseLaser.h:26
La pool est la structure qui contient l'Entity Component System Elle gêre les différentes composantes...
Definition pool.h:42
Definition timer.h:8