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

Fonctions permettant de créer et gêrer des lasers droits. Plus de détails...

#include "systems/timer.h"
#include "component.h"
#include "assets.h"
#include "components/collision_rectangle.h"
#include "components/common.h"
#include "components/sprite.h"

Aller au code source de ce fichier.

Classes

struct  Straight_laser
 composante laser droit dans la pool Plus de détails...

Macros

#define LASER_STATE_WARNING   -1
#define LASER_STATE_GROWING   0
#define LASER_STATE_DURATION   1
#define LASER_STATE_DONE   2

Fonctions

bool straight_laser_update (Pool *p, Entity laserID)
 Met à jour un laser droit pour une frame.
void straight_lasers_update_all (Pool *pool)
 Met à jour tous les lasers droits présents dans la pool.
void straight_laser_draw (Straight_laser *laser, Position *pos, Sprite *sprite)
 Dessine un laser droit.
void straight_lasers_draw_all (Straight_laserManager *laserManager, PositionManager *positionManager, SpriteManager *spriteManager)
 Dessine tous les lasers droits actifs du manager.
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.

Description détaillée

Fonctions permettant de créer et gêrer des lasers droits.

Documentation des macros

◆ LASER_STATE_DONE

#define LASER_STATE_DONE   2

◆ LASER_STATE_DURATION

#define LASER_STATE_DURATION   1

◆ LASER_STATE_GROWING

#define LASER_STATE_GROWING   0

◆ LASER_STATE_WARNING

#define LASER_STATE_WARNING   -1

Documentation des fonctions

◆ straight_laser_create()

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é.

Paramètres temporels : warning, growing et duration sont des durées en frames utilisées pour initialiser le timer du composant.

Paramètres
poolPointeur vers la pool.
xPosition X initiale du laser.
yPosition Y initiale du laser.
angleAngle initial
lengthLongueur du laser.
maxWidthLargeur maximale du laser.
warningDurée avant la phase de croissance.
growingDurée de croissance pendant laquelle la largeur augmente.
durationDurée pendant laquelle la largeur reste maximale.
graphicID du visuel à utiliser pour ce laser.
Renvoie
L'identifiant de l'entité créée contenant le Straight_laser.

◆ straight_laser_draw()

void straight_laser_draw ( Straight_laser * laser,
Position * pos,
Sprite * sprite )

Dessine un laser droit.

Le dessin utilise la longueur et la largeur du composant ainsi que la Position et le sprite fournis.

Paramètres
laserlaser à afficher
posposition du laser
spritesprite utilisé pour le rendu du laser

◆ straight_laser_enemy_create()

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.

Appelle straight_laser_create puis ajoute le flag FLAG_PROJECTILE_ENEMY à la flagList de l'entité.

Voir également
straight_laser_create

◆ straight_laser_update()

bool straight_laser_update ( Pool * p,
Entity laserID )

Met à jour un laser droit pour une frame.

Le laser évolue selon son timer interne. Il peut passer à l'état suivant si son heure d'activation ou de destruction est venue.

Paramètres
ppool courante (toutes les données de l'ECS)
laserIDid du laser à mettre à jour
Renvoie
true si le laser doit continuer d'exister, false s'il doit être supprimé.

◆ straight_lasers_draw_all()

void straight_lasers_draw_all ( Straight_laserManager * laserManager,
PositionManager * positionManager,
SpriteManager * spriteManager )

Dessine tous les lasers droits actifs du manager.

Paramètres
laserManagerStraight_laserManager
positionManagerPositionManager
spriteManagerSpriteManager

◆ straight_lasers_update_all()

void straight_lasers_update_all ( Pool * pool)

Met à jour tous les lasers droits présents dans la pool.

Parcourt le Straight_laserManager et appelle straight_laser_update pour chaque instance et marque les entités à supprimer si nécessaire.

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