gfxEngine_documentation
bfg_spriteEngine.h File Reference
#include <stdlib.h>
#include <kos.h>

Go to the source code of this file.

Data Structures

struct  ssprite
 Structure contenant les donnees des sprites. More...
 
struct  spart
 Structure contenant les donnees des morceaux de mega-sprite. More...
 
struct  smsprite
 Structure contenant les donnees des mega-sprite. More...
 

Macros

#define MAX_SPRITE   500
 
#define MAX_ANIMATION   30
 
#define MAX_ANIMATION_FRAME   20
 
#define ANIM_LOOP   1
 
#define ANIM_NOLOOP   0
 
#define ANIMATION_CLASSIQUE   0
 
#define ANIMATION_COMPLEXE   1
 
#define MAXHITBOX   10
 
#define MS_MAXMSPRITE   100
 
#define MS_MAXPART   8
 
#define MS_MAXANIM   10
 

Functions

int spr_isSpriteCollidePerfect (int sprite1, int sprite2)
 Teste la collision parfaite entre deux sprites (Necessite un mask charge en memoire) More...
 
int spr_isSpriteCollidePerfectCompress (int sprite1, int sprite2)
 Teste la collision parfaite entre deux sprites (Necessite un mask compresse charge en memoire) More...
 
int spr_count_used_sprites (void)
 Compte le nombre de sprite actif. More...
 
void spr_initSpriteEngine ()
 Initialise le moteur de sprite classique. More...
 
void spr_initSprite (int n, float x, float y, float rot, int i)
 Reserve un sprite specifique a une position x,y avec une rotation et indique son centre de rotation. More...
 
int spr_reserveFreeSprite (void)
 Reserve et initialise un sprite. More...
 
int spr_reserveFreeSpriteFrom (int borne)
 Reserve un sprite libre a partir d'un numero de sprite. More...
 
int spr_initFreeSprite (float x, float y, float r, int i)
 Reserve un sprite specifique a une position x,y avec une rotation et indique son centre de rotation. More...
 
void spr_releaseSprite (int n)
 Libere le sprite. More...
 
void spr_releaseAllSprite ()
 Libere tout les sprites. More...
 
void spr_animateSprite (int s, int a)
 Declenche l'animation d'un sprite. More...
 
void spr_changeSmoothSpriteRotAbsolute (int s, float nouvelAngle, int nbFrame)
 Change de maniere fluide la rotation d'un sprite en absolue. More...
 
void spr_changeSmoothSpriteRotRelative (int s, float AngleStep, int nbFrame)
 Change de maniere fluide la rotation d'un sprite en relatif. More...
 
void spr_changeSmoothSpriteTXAbsolute (int s, float nouvelPosX, int nbFrame)
 Change de maniere fluide la position x d'un sprite en absolue. More...
 
void spr_changeSmoothSpriteTXRelative (int s, float StepX, int nbFrame)
 Change de maniere fluide la position x d'un sprite en relatif. More...
 
void spr_changeSmoothSpriteTYAbsolute (int s, float nouvelPosY, int nbFrame)
 Change de maniere fluide la position y d'un sprite en absolue. More...
 
void spr_changeSmoothSpriteTYRelative (int s, float StepY, int nbFrame)
 Change de maniere fluide la position y d'un sprite en relatif. More...
 
void spr_setSpriteAnimation (int s, int a, int speed, int f0, int f1, int f2, int f3, int f4, int f5, int f6, int f7, int f8, int f9, int f10, int f11, int f12, int f13, int f14, int f15, int f16, int f17, int f18, int f19, int loop)
 Fonction toute pourrie pour definir une animation de sprite. More...
 
void spr_setSpriteAnimation2 (int s, int a, int speed, int *v, int loop)
 Fonction un peu moins pourri pour definir une animation de sprite. More...
 
void spr_setSpriteHitbox (int sprno, int hbx, int hby, int hbh, int hbl)
 Definit la hitbox d'un sprite. More...
 
void spr_moveSprite (int n, float x, float y)
 Positionne le sprite. More...
 
void spr_moveSpriteRelative (int n, float x, float y)
 Positionne le sprite de manière relatif. More...
 
void spr_changeSpriteRotation (int n, float r, int center)
 Change l'angle du sprite. More...
 
void spr_changeSpriteZoom (int n, float zx, float zy)
 Change le zoom du sprite. More...
 
void spr_changeSpriteImage (int n, int i)
 Change l'image du sprite. More...
 
void spr_changeSpriteLayer (int n, int lno)
 Change le layer du sprite (Non utilise) More...
 
void spr_showSprite (int n)
 Affiche le sprite. More...
 
void spr_updateSprites (int n)
 Met a jour les animations du sprite. More...
 
void spr_showAllSprites ()
 Affiche tout les sprites actifs. More...
 
void spr_showAllSpritesLayer (int layerno)
 Affiche tout les sprites d'un certain layer (Non utilise) More...
 
void spr_updateAllSprites ()
 Met a jour les animations de tout les sprites. More...
 
void spr_stopAnimateSprite (int s)
 Arrete l'animation d'un sprite. More...
 
int spr_isSpriteCollide (int sprite1, int sprite2)
 Teste la collision hitbox entre deux sprites. More...
 
float spr_getSpriteZoomX (int n)
 
float spr_getSpriteZoomY (int n)
 
float spr_getSpriteRot (int n)
 
float spr_getSpriteX (int n)
 
float spr_getSpriteY (int n)
 
int spr_getFinAnimation (int sprno)
 
int spr_getFinRotation (int sprno)
 
int spr_getFinTX (int sprno)
 
int spr_getFinTY (int sprno)
 
int spr_getCurrentAnimation (int sprno)
 
int spr_getCurrentAnimationFrame (int sprno)
 
int spr_getHitBoxX (int sprno)
 
int spr_getHitBoxY (int sprno)
 
int spr_getHitBoxH (int sprno)
 
int spr_getHitBoxL (int sprno)
 
void ms_initMegaSpriteEngine (void)
 
int ms_reserveFreeMegaSprite (int nbPart)
 
void ms_destroyMegaSprite (int msno)
 
void ms_setDataMoveAnimation (int msno, float *data, int loop)
 Definit les mouvements des differentes parties du megasprite. More...
 
void ms_setImagePart (int msno, int ipart, int ibno)
 
void ms_updateMegaSprite (int msno)
 
void ms_updateAllMegaSprite (void)
 
void ms_showMegaSprite (int msno)
 
void ms_showAllMegaSprite (void)
 
void ms_startAnimate (int msno)
 
void ms_stopAnimate (int msno)
 
void ms_setPosXPart (int msno, int pno, float x)
 
void ms_setPosYPart (int msno, int pno, float y)
 
void ms_setPosPart (int msno, int pno, float x, float y)
 
void ms_setRotPart (int msno, int pno, float r)
 
void ms_setPosX (int msno, float x)
 
void ms_setPosY (int msno, float y)
 
int ms_getCurrentPhase (int msno)
 
float ms_getPosX (int msno)
 
float ms_getPosY (int msno)
 
int ms_getFinAnimation (int msno)
 
int ms_isSpriteMegaSpriteCollide (int sprno, int msprno)
 
void ms_setNbHitBox (int msno, int nb)
 
void ms_setHitBox (int msprono, int hno, int vx, int vy, int vh, int vl)
 
void ms_setAnimationPart (int msno, int pno, int *data, int loop)
 
void ms_startAnimatePart (int msno, int pno)
 
void ms_stopAnimatePart (int msno, int pno)
 

Macro Definition Documentation

#define ANIM_LOOP   1

L'animation boucle automatiquement

#define ANIM_NOLOOP   0

L'animation ne boucle pas

#define ANIMATION_CLASSIQUE   0

Type d'animation classique pour les mega-sprite

#define ANIMATION_COMPLEXE   1

Type d'animation complexe pour les mega-sprite

#define MAX_ANIMATION   30

Nombre d'animations disponibles pour un sprite

#define MAX_ANIMATION_FRAME   20

Nombre d'imageBank pour une animation

#define MAX_SPRITE   500

Nombre de sprite disponible

#define MAXHITBOX   10

Nombre de hitbox pour un mega-sprite

#define MS_MAXANIM   10

Nombre d'animations possibles pour un mega-sprite

#define MS_MAXMSPRITE   100

Nombre de mega-sprite

#define MS_MAXPART   8

Nombre de parties composant le mega-sprite

Function Documentation

void ms_destroyMegaSprite ( int  msno)
int ms_getCurrentPhase ( int  msno)
int ms_getFinAnimation ( int  msno)
float ms_getPosX ( int  msno)
float ms_getPosY ( int  msno)
void ms_initMegaSpriteEngine ( void  )
int ms_isSpriteMegaSpriteCollide ( int  sprno,
int  msprno 
)
int ms_reserveFreeMegaSprite ( int  nbPart)
void ms_setAnimationPart ( int  msno,
int  pno,
int *  data,
int  loop 
)
void ms_setDataMoveAnimation ( int  msno,
float *  data,
int  loop 
)

Definit les mouvements des differentes parties du megasprite.

Format des datamoves : !! IMPORTANT DOIT RESPECTER LE NOMBRE DE PART !!
Timer A
PositionX,PositionY,Rotation Part 1 pour Timer A
PositionX,PositionY,Rotation Part 2 pour Timer A
[...]
Timer B
PositionX,PositionY,Rotation Part 1 pour Timer B
PositionX,PositionY,Rotation Part 2 pour Timer B
-1

Parameters
msno: numero du megasprite
*data: tableau de datamoves
loop: doit-on boucler ?
Returns
0 - Pas de collision / 1 - Collision
void ms_setHitBox ( int  msprono,
int  hno,
int  vx,
int  vy,
int  vh,
int  vl 
)
void ms_setImagePart ( int  msno,
int  ipart,
int  ibno 
)
void ms_setNbHitBox ( int  msno,
int  nb 
)
void ms_setPosPart ( int  msno,
int  pno,
float  x,
float  y 
)
void ms_setPosX ( int  msno,
float  x 
)
void ms_setPosXPart ( int  msno,
int  pno,
float  x 
)
void ms_setPosY ( int  msno,
float  y 
)
void ms_setPosYPart ( int  msno,
int  pno,
float  y 
)
void ms_setRotPart ( int  msno,
int  pno,
float  r 
)
void ms_showAllMegaSprite ( void  )
void ms_showMegaSprite ( int  msno)
void ms_startAnimate ( int  msno)
void ms_startAnimatePart ( int  msno,
int  pno 
)
void ms_stopAnimate ( int  msno)
void ms_stopAnimatePart ( int  msno,
int  pno 
)
void ms_updateAllMegaSprite ( void  )
void ms_updateMegaSprite ( int  msno)
void spr_animateSprite ( int  s,
int  a 
)

Declenche l'animation d'un sprite.

Parameters
s: Numero du sprite
a: Numero de l'animation
void spr_changeSmoothSpriteRotAbsolute ( int  s,
float  nouvelAngle,
int  nbFrame 
)

Change de maniere fluide la rotation d'un sprite en absolue.

Parameters
s: Numero du sprite
nouvelAngle: Angle
nbFrame: Donne le nombre d'etape pour atteindre le nouvel angle
void spr_changeSmoothSpriteRotRelative ( int  s,
float  AngleStep,
int  nbFrame 
)

Change de maniere fluide la rotation d'un sprite en relatif.

Parameters
s: Numero du sprite
AngleStep: Ajoute/Soustrait la valeur de ce parametre a l'angle courant
nbFrame: Donne le nombre d'etape pour atteindre le nouvel angle
void spr_changeSmoothSpriteTXAbsolute ( int  s,
float  nouvelPosX,
int  nbFrame 
)

Change de maniere fluide la position x d'un sprite en absolue.

Parameters
s: Numero du sprite
nouvelPosX: Position X a atteindre
nbFrame: Donne le nombre d'etape pour atteindre la nouvelle position
void spr_changeSmoothSpriteTXRelative ( int  s,
float  StepX,
int  nbFrame 
)

Change de maniere fluide la position x d'un sprite en relatif.

Parameters
s: Numero du sprite
nouvelPosX: Ajoute/Soustrait la valeur de ce parametre a la position x
nbFrame: Donne le nombre d'etape pour atteindre la nouvelle position
void spr_changeSmoothSpriteTYAbsolute ( int  s,
float  nouvelPosY,
int  nbFrame 
)

Change de maniere fluide la position y d'un sprite en absolue.

Parameters
s: Numero du sprite
nouvelPosY: Position y a atteindre
nbFrame: Donne le nombre d'etape pour atteindre la nouvelle position
void spr_changeSmoothSpriteTYRelative ( int  s,
float  StepY,
int  nbFrame 
)

Change de maniere fluide la position y d'un sprite en relatif.

Parameters
s: Numero du sprite
nouvelPosY: Ajoute/Soustrait la valeur de ce parametre a la position x
nbFrame: Donne le nombre d'etape pour atteindre la nouvelle position
void spr_changeSpriteImage ( int  n,
int  i 
)

Change l'image du sprite.

Parameters
n: Numero du sprite
i: ImageBank
void spr_changeSpriteLayer ( int  n,
int  lno 
)

Change le layer du sprite (Non utilise)

Parameters
n: Numero du sprite
lno: Layer d'affichage
void spr_changeSpriteRotation ( int  n,
float  r,
int  center 
)

Change l'angle du sprite.

Parameters
n: Numero du sprite
r: Angle
center: 0 - Rotation par rapport au coin superieur gauche / 1 - Par rapport au centre
void spr_changeSpriteZoom ( int  n,
float  zx,
float  zy 
)

Change le zoom du sprite.

Parameters
n: Numero du sprite
zx: Facteur grossissant x
zy: Facteur grossissant y
int spr_count_used_sprites ( void  )

Compte le nombre de sprite actif.

Returns
Nombre de sprite utilise
int spr_getCurrentAnimation ( int  sprno)
int spr_getCurrentAnimationFrame ( int  sprno)
int spr_getFinAnimation ( int  sprno)
int spr_getFinRotation ( int  sprno)
int spr_getFinTX ( int  sprno)
int spr_getFinTY ( int  sprno)
int spr_getHitBoxH ( int  sprno)
int spr_getHitBoxL ( int  sprno)
int spr_getHitBoxX ( int  sprno)
int spr_getHitBoxY ( int  sprno)
float spr_getSpriteRot ( int  n)
float spr_getSpriteX ( int  n)
float spr_getSpriteY ( int  n)
float spr_getSpriteZoomX ( int  n)
float spr_getSpriteZoomY ( int  n)
int spr_initFreeSprite ( float  x,
float  y,
float  r,
int  i 
)

Reserve un sprite specifique a une position x,y avec une rotation et indique son centre de rotation.

Parameters
x: position x
y: position y
r: angle de rotation
i: Numero d'imageBank
Returns
Numero du sprite reserve (-1 si reservation impossible)
void spr_initSprite ( int  n,
float  x,
float  y,
float  rot,
int  i 
)

Reserve un sprite specifique a une position x,y avec une rotation et indique son centre de rotation.

Parameters
n: numero du sprite a reserver
x: position x
y: position y
rot: angle de rotation
i: numero d'ImageBank
void spr_initSpriteEngine ( )

Initialise le moteur de sprite classique.

int spr_isSpriteCollide ( int  sprite1,
int  sprite2 
)

Teste la collision hitbox entre deux sprites.

Parameters
sprite1: numero du 1er sprite
sprite2: Numero du second sprite
Returns
0 - Pas de collision / 1 - Collision
int spr_isSpriteCollidePerfect ( int  sprite1,
int  sprite2 
)

Teste la collision parfaite entre deux sprites (Necessite un mask charge en memoire)

Parameters
sprite1: numero du 1er sprite
sprite2: Numero du second sprite
Returns
0 - Pas de collision / 1 - Collision
int spr_isSpriteCollidePerfectCompress ( int  sprite1,
int  sprite2 
)

Teste la collision parfaite entre deux sprites (Necessite un mask compresse charge en memoire)

Parameters
sprite1: numero du 1er sprite
sprite2: Numero du second sprite
Returns
0 - Pas de collision / 1 - Collision
void spr_moveSprite ( int  n,
float  x,
float  y 
)

Positionne le sprite.

Parameters
n: Numero du sprite
x: Position x du coin superieur gauche du sprite
y: Position y du coin superieur gauche du sprite
void spr_moveSpriteRelative ( int  n,
float  x,
float  y 
)

Positionne le sprite de manière relatif.

Parameters
n: Numero du sprite
x: Valeur x à ajouter ou soustraire de la position x courante
y: Valeur y à ajouter ou soustraire de la position x courante
void spr_releaseAllSprite ( )

Libere tout les sprites.

void spr_releaseSprite ( int  n)

Libere le sprite.

Parameters
n: Numero du sprite a liberer
int spr_reserveFreeSprite ( void  )

Reserve et initialise un sprite.

Returns
Numero du sprite reserve (-1 si reservation impossible)
int spr_reserveFreeSpriteFrom ( int  borne)

Reserve un sprite libre a partir d'un numero de sprite.

Parameters
borne: numero de borne de recherche de sprite libre
Returns
Numero du sprite reserve (-1 si reservation impossible)
void spr_setSpriteAnimation ( int  s,
int  a,
int  speed,
int  f0,
int  f1,
int  f2,
int  f3,
int  f4,
int  f5,
int  f6,
int  f7,
int  f8,
int  f9,
int  f10,
int  f11,
int  f12,
int  f13,
int  f14,
int  f15,
int  f16,
int  f17,
int  f18,
int  f19,
int  loop 
)

Fonction toute pourrie pour definir une animation de sprite.

Parameters
s: Numero du sprite
a: Numero de l'animation a definir
speed: Vitesse de l'animation
f1..f19: Numero d'imageBank pour une frame. -1 = Fin d'animation
loop: ANIM_LOOP = Animation qui boucle / ANIM_NOLOOP = Ne boucle pas
void spr_setSpriteAnimation2 ( int  s,
int  a,
int  speed,
int *  v,
int  loop 
)

Fonction un peu moins pourri pour definir une animation de sprite.

Parameters
s: Numero du sprite
a: Numero de l'animation a definir
speed: Vitesse de l'animation
v: Tableau contenant les numeros d'ImageBank composant l'animation. Doit se terminer par -1 et ne pas contenir plus de 20 valeurs.
loop: ANIM_LOOP = Animation qui boucle / ANIM_NOLOOP = Ne boucle pas
void spr_setSpriteHitbox ( int  sprno,
int  hbx,
int  hby,
int  hbh,
int  hbl 
)

Definit la hitbox d'un sprite.

Parameters
s: Numero du sprite
hbx: Position x du coin superieur gauche de la hitbox
hby: Position y du coin superieur gauche de la hitbox
hbh: Hauteur de la hitbox
hbl: Largeur de la hitbox
void spr_showAllSprites ( )

Affiche tout les sprites actifs.

void spr_showAllSpritesLayer ( int  layerno)

Affiche tout les sprites d'un certain layer (Non utilise)

Parameters
layerno: Numero du layer
void spr_showSprite ( int  n)

Affiche le sprite.

Parameters
n: Numero du sprite
void spr_stopAnimateSprite ( int  s)

Arrete l'animation d'un sprite.

Parameters
s: Numero du sprite
void spr_updateAllSprites ( )

Met a jour les animations de tout les sprites.

Parameters
n: Numero du sprite
void spr_updateSprites ( int  n)

Met a jour les animations du sprite.

Parameters
n: Numero du sprite