Yume Project 3.0
Touhou-inspired Danmaku game made in C only
Chargement...
Recherche...
Aucune correspondance
straight_laser.h
Aller à la documentation de ce fichier.
1
5
6#pragma once
7
8#include "systems/timer.h"
9#include "component.h"
10#include "assets.h"
12#include "components/common.h"
13#include "components/sprite.h"
14
15#define LASER_STATE_WARNING -1
16#define LASER_STATE_GROWING 0
17#define LASER_STATE_DURATION 1
18#define LASER_STATE_DONE 2
19
20typedef struct Pool Pool;
21
26typedef struct {
28 float laserWidth; // taille actuelle affichée
29 float laserMaxWidth; // taille quand le laser s'élargit au max
30 float intersectionWidth; // largeur hitbox
31
33
35
37DECLARE_SETTER_GETTER(Straight_laser, float, laserLength)
38DECLARE_SETTER_GETTER(Straight_laser, float, laserWidth)
39DECLARE_SETTER_GETTER(Straight_laser, float, laserMaxWidth)
40DECLARE_SETTER_GETTER(Straight_laser, float, intersectionWidth)
52
62
73void straight_laser_draw(Straight_laser *laser, Position * pos, Sprite * sprite);
74
82void straight_lasers_draw_all(Straight_laserManager *laserManager, PositionManager * positionManager, SpriteManager * spriteManager);
83
103Entity straight_laser_create(Pool *pool, int x, int y, int angle, int length, int maxWidth, int warning, int growing, int duration, SpriteID graphic);
104
113Entity straight_laser_enemy_create(Pool *pool, int x, int y, int angle, int length, int maxWidth, int warning, int growing, int duration, SpriteID graphic);
Chargement et références des assets (textures, sprites, audio, polices).
SpriteID
Definition assets.h:63
collisions rectangulaires
Composants communs à toutes les entités (Position, Tag).
Macros nécessaire à la création de nouvelles composantes de l'ECS.
#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
#define MAX_ENTITIES
Definition ecs.h:14
uint32_t Entity
Une entité est un indice.
Definition ecs.h:20
Composante du sprite.
bool straight_laser_update(Pool *p, Entity laserID)
Met à jour un laser droit pour une frame.
void straight_lasers_draw_all(Straight_laserManager *laserManager, PositionManager *positionManager, SpriteManager *spriteManager)
Dessine tous les lasers droits actifs du manager.
void straight_laser_draw(Straight_laser *laser, Position *pos, Sprite *sprite)
Dessine un laser droit.
Entity straight_laser_create(Pool *pool, int x, int y, int angle, int length, int maxWidth, int warning, int growing, int duration, SpriteID graphic)
Crée un laser droit et l'attache à une nouvelle entité.
Entity straight_laser_enemy_create(Pool *pool, int x, int y, int angle, int length, int maxWidth, int warning, int growing, int duration, SpriteID graphic)
Variante de création marquant le laser comme projectile ennemi.
void straight_lasers_update_all(Pool *pool)
Met à jour tous les lasers droits présents dans la pool.
La pool est la structure qui contient l'Entity Component System Elle gêre les différentes composantes...
Definition pool.h:42
Definition common.h:44
Composante Sprite dans l'ECS Cette composante sert à associer une texture à une Entité....
Definition sprite.h:35
composante laser droit dans la pool
Definition straight_laser.h:26
float intersectionWidth
Definition straight_laser.h:30
float laserLength
Definition straight_laser.h:27
Timer timer
Definition straight_laser.h:32
float laserWidth
Definition straight_laser.h:28
float laserMaxWidth
Definition straight_laser.h:29
Definition timer.h:8