gfxEngine_documentation
|
#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) |
#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
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
msno | : numero du megasprite |
*data | : tableau de datamoves |
loop | : doit-on boucler ? |
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.
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.
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.
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.
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.
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.
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.
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.
n | : Numero du sprite |
i | : ImageBank |
void spr_changeSpriteLayer | ( | int | n, |
int | lno | ||
) |
Change le layer du sprite (Non utilise)
n | : Numero du sprite |
lno | : Layer d'affichage |
void spr_changeSpriteRotation | ( | int | n, |
float | r, | ||
int | center | ||
) |
Change l'angle du sprite.
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.
n | : Numero du sprite |
zx | : Facteur grossissant x |
zy | : Facteur grossissant y |
int spr_count_used_sprites | ( | void | ) |
Compte le nombre de sprite actif.
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.
x | : position x |
y | : position y |
r | : angle de rotation |
i | : Numero d'imageBank |
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.
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.
sprite1 | : numero du 1er sprite |
sprite2 | : Numero du second sprite |
int spr_isSpriteCollidePerfect | ( | int | sprite1, |
int | sprite2 | ||
) |
Teste la collision parfaite entre deux sprites (Necessite un mask charge en memoire)
sprite1 | : numero du 1er sprite |
sprite2 | : Numero du second sprite |
int spr_isSpriteCollidePerfectCompress | ( | int | sprite1, |
int | sprite2 | ||
) |
Teste la collision parfaite entre deux sprites (Necessite un mask compresse charge en memoire)
sprite1 | : numero du 1er sprite |
sprite2 | : Numero du second sprite |
void spr_moveSprite | ( | int | n, |
float | x, | ||
float | y | ||
) |
Positionne le sprite.
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.
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.
n | : Numero du sprite a liberer |
int spr_reserveFreeSprite | ( | void | ) |
Reserve et initialise un sprite.
int spr_reserveFreeSpriteFrom | ( | int | borne | ) |
Reserve un sprite libre a partir d'un numero de sprite.
borne | : numero de borne de recherche de sprite libre |
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.
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.
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.
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)
layerno | : Numero du layer |
void spr_showSprite | ( | int | n | ) |
Affiche le sprite.
n | : Numero du sprite |
void spr_stopAnimateSprite | ( | int | s | ) |
Arrete l'animation d'un sprite.
s | : Numero du sprite |
void spr_updateAllSprites | ( | ) |
Met a jour les animations de tout les sprites.
n | : Numero du sprite |
void spr_updateSprites | ( | int | n | ) |
Met a jour les animations du sprite.
n | : Numero du sprite |