Sprite system for Dual Screen


Fonctions

void PA_SetScreenSpace (s16 ScreenSpace)
 Désigner l'espace entre les 2 écrans, 48 pixels par défaut
void PA_DualSetSpriteY (u8 obj, s16 y)
 Position Y du sprite à l'écran
void PA_DualCreateSprite (u8 obj_number, void *obj_data, u8 obj_shape, u8 obj_size, u8 color_mode, u8 palette, s16 x, s16 y)
 Creer un sprite avec ses gfxsur les 2 écrans
void PA_DualCreateSpriteEx (u8 obj_number, void *obj_data, u8 obj_shape, u8 obj_size, u8 color_mode, u8 palette, u8 obj_mode, bool mosaic, bool hflip, bool vflip, u8 prio, bool dblsize, s16 x, s16 y)
 Creer un sprite avec ses gfx... Ceci est la version complexe de la fonction
void PA_DualCreate16bitSpriteEx (u8 obj_number, void *obj_data, u8 obj_shape, u8 obj_size, bool mosaic, bool hflip, bool vflip, u8 prio, bool dblsize, s16 x, s16 y)
 Creer un sprite de 16 bits avec ses gfx... Ceci est la version complexe de la fonction. Attention : un sprite de 16 bits DOIT etre large de 128 pixels, meme si ce sprite ne prend qu'une petite partie sur la gauche
void PA_DualCreate16bitSprite (u8 obj_number, void *obj_data, u8 obj_shape, u8 obj_size, s16 x, s16 y)
 Creer un sprite de 16 bits avec ses gfx... Ceci est la version simple de la fonction. Attention : un sprite de 16 bits DOIT etre large de 128 pixels, meme si ce sprite ne prend qu'une petite partie sur la gauche
void PA_DualCreateSpriteFromGfx (u8 obj_number, u16 *obj_gfx, u8 obj_shape, u8 obj_size, u8 color_mode, u8 palette, s16 x, s16 y)
 Creer un sprite avec ses gfx... Ceci est la version simple de la fonction
void PA_DualCreateSpriteExFromGfx (u8 obj_number, u16 *obj_gfx, u8 obj_shape, u8 obj_size, u8 color_mode, u8 palette, u8 obj_mode, bool mosaic, bool hflip, bool vflip, u8 prio, bool dblsize, s16 x, s16 y)
 Creer un sprite avec ses gfx... Ceci est la version complexe de la fonction
void PA_DualUpdateSpriteGfx (u8 obj_number, void *obj_data)
 Mettre à jour les Gfx d'un sprite donné
void PA_DualUpdateGfx (u16 gfx_number, void *obj_data)
 Mettre à jour les Gfx d'un sprite donné
void PA_DualDeleteSprite (u8 obj_number)
 Effacer un sprite. S'il était le seul à utiliser un gfx, il sera effacé lui aussi
void PA_DualSetSpriteRotEnable (u8 sprite, u8 rotset)
 Faire tourner et zoomer un sprite
void PA_DualSetSpriteRotDisable (u8 sprite)
 Arreter de faire tourner et zoomer un sprite
void PA_DualSetRotset (u8 rotset, s16 angle, u16 zoomx, u16 zoomy)
 Faire tourner et zoomer un sprite
void PA_DualSetRotsetNoZoom (u8 rotset, s16 angle)
 Faire tourner un sprite sans zoomer. C'est un peu plus rapide que la fonction PA_SetRotset
void PA_DualSetRotsetNoAngle (u8 rotset, u16 zoomx, u16 zoomy)
 Zoomer un sprite sans le faire tourner. C'est un peu plus rapide que la fonction PA_SetRotset
void PA_DualSetSpriteX (u8 obj, s16 x)
 Position X du sprite à l'écran
void PA_DualSetSpriteXY (u8 sprite, s16 x, s16 y)
 Position X et Y du sprite à l'écran
void PA_DualSetSpritePal (u8 obj, u8 pal)
 Changer la palette d'un sprite
void PA_DualSetSpriteDblsize (u8 obj, bool dblsize)
 Activer ou désactiver le mode Doublesize pour un sprite
void PA_DualSetSpriteColors (u8 sprite, bool n_colors)
 Changer le mode de couleur du sprite
void PA_DualSetSpriteMode (u8 sprite, u8 obj_mode)
 Régler le mode d'un sprite : 0 pour normal, 1 pour transparent, 2 pour fenetre
void PA_DualSetSpriteMosaic (u8 obj, bool mosaic)
 Mettre ou non un sprite en mode mosaic
void PA_DualSetSpriteHflip (u8 obj, bool hflip)
 Utiliser ou non le flip horizontal pour un sprite
void PA_DualSetSpriteVflip (u8 obj, bool vflip)
 Utiliser ou non le flip vertical pour un sprite
void PA_DualSetSpriteGfx (u8 obj, u16 *gfx)
 Modifier les graphismes utilisés par un sprite
void PA_DualSetSpritePrio (u8 obj, u8 prio)
 Régler la priorité d'un sprite par rapport au Bg.
void PA_DualCloneSprite (u8 obj, u8 target)
 Cloner un sprite. Marche uniquement pour les sprites sur un meme écran
void PA_DualSetSpriteAnimEx (u8 sprite, u8 lx, u8 ly, u8 ncolors, s16 animframe)
 Régler l'image du sprite dans l'animation. Cette fonction est plus rapide que PA_SetSpriteAnim parce qu'elle n'a pas à rechercher les dimensions du sprite
void PA_DualSetSpriteAnim (u8 sprite, s16 animframe)
 Régler l'image du sprite dans l'animation. Identique à PA_SetSpriteAnimEx, mais plus simple à utiliser, par contre plus lent
void PA_DualSetSpritePixelEx (u8 sprite, u8 hsize, u8 n_colors, u8 x, u8 y, u8 color)
 Mettre un pixel d'un sprite à une couleur donnée
void PA_DualSetSpritePixel (u8 sprite, s16 x, s16 y, bool color)
 Mettre un pixel d'un sprite à une couleur donnée. Comme PA_SetSpritePixelEx, avec moins d'options, mais un peu plus lent

Description détaillée

Load Sprite, move them around, rotate them...

Documentation des fonctions

inline void PA_DualCloneSprite u8  obj,
u8  target
[inline]
 

Cloner un sprite. Marche uniquement pour les sprites sur un meme écran

Paramètres:
obj Numéro de l'objet dans le systeme de sprite
target Numéro de la cible à cloner

inline void PA_DualCreate16bitSprite u8  obj_number,
void *  obj_data,
u8  obj_shape,
u8  obj_size,
s16  x,
s16  y
[inline]
 

Creer un sprite de 16 bits avec ses gfx... Ceci est la version simple de la fonction. Attention : un sprite de 16 bits DOIT etre large de 128 pixels, meme si ce sprite ne prend qu'une petite partie sur la gauche

Paramètres:
obj_number Numéro du sprite que vous voulez utiliser (de 0 à 127 pour chaque écran séparemment).
obj_data Gfx à charger
obj_shape Forme du sprite à charger, de 0 à 2. Utiliser la macro OBJ_SIZE_32X32 (...) pour charger la forme et la taille...
obj_size Taille du sprite. Utiliser la macro OBJ_SIZE_32X32 (...) pour charger la forme et la taille...
x Position X du sprite
y Position Y du sprite

inline void PA_DualCreate16bitSpriteEx u8  obj_number,
void *  obj_data,
u8  obj_shape,
u8  obj_size,
bool  mosaic,
bool  hflip,
bool  vflip,
u8  prio,
bool  dblsize,
s16  x,
s16  y
[inline]
 

Creer un sprite de 16 bits avec ses gfx... Ceci est la version complexe de la fonction. Attention : un sprite de 16 bits DOIT etre large de 128 pixels, meme si ce sprite ne prend qu'une petite partie sur la gauche

Paramètres:
obj_number Numéro du sprite que vous voulez utiliser (de 0 à 127 pour chaque écran séparemment).
obj_data Gfx à charger
obj_shape Forme du sprite à charger, de 0 à 2. Utiliser la macro OBJ_SIZE_32X32 (...) pour charger la forme et la taille...
obj_size Taille du sprite. Utiliser la macro OBJ_SIZE_32X32 (...) pour charger la forme et la taille...
mosaic Activer le mode mosaique pour ce sprite. Pas encore au point...
hflip Flip horizontal activé ou non.
vflip Flip vertical...
prio Priorité du sprite vis-à-vis des fonds : devant quel fond l'afficher... (0-3)
dblsize Doubler la taille possible du sprite. A activer uniquement si on compte grossir et faire tourner le sprite
x Position X du sprite
y Position Y du sprite

inline void PA_DualCreateSprite u8  obj_number,
void *  obj_data,
u8  obj_shape,
u8  obj_size,
u8  color_mode,
u8  palette,
s16  x,
s16  y
[inline]
 

Creer un sprite avec ses gfxsur les 2 écrans

Paramètres:
obj_number Numéro du sprite que vous voulez utiliser (de 0 à 127 pour chaque écran séparemment).
obj_data Gfx à charger
obj_shape Forme du sprite à charger, de 0 à 2. Utiliser la macro OBJ_SIZE_32X32 (...) pour charger la forme et la taille...
obj_size Taille du sprite. Utiliser la macro OBJ_SIZE_32X32 (...) pour charger la forme et la taille...
color_mode Mode 256 ou 16 couleurs (1 ou 0).
palette Palette à utiliser (0-15).
x Position X du sprite
y Position Y du sprite

inline void PA_DualCreateSpriteEx u8  obj_number,
void *  obj_data,
u8  obj_shape,
u8  obj_size,
u8  color_mode,
u8  palette,
u8  obj_mode,
bool  mosaic,
bool  hflip,
bool  vflip,
u8  prio,
bool  dblsize,
s16  x,
s16  y
[inline]
 

Creer un sprite avec ses gfx... Ceci est la version complexe de la fonction

Paramètres:
obj_number Numéro du sprite que vous voulez utiliser (de 0 à 127 pour chaque écran séparemment).
obj_data Gfx à charger
obj_shape Forme du sprite à charger, de 0 à 2. Utiliser la macro OBJ_SIZE_32X32 (...) pour charger la forme et la taille...
obj_size Taille du sprite. Utiliser la macro OBJ_SIZE_32X32 (...) pour charger la forme et la taille...
color_mode Mode 256 ou 16 couleurs (1 ou 0).
palette Palette à utiliser (0-15).
obj_mode Mode du sprite (normal, transparent, fenetre). Pas encore opérationnel, laisser à 0...
mosaic Activer le mode mosaique pour ce sprite. Pas encore au point...
hflip Flip horizontal activé ou non.
vflip Flip vertical...
prio Priorité du sprite vis-à-vis des fonds : devant quel fond l'afficher... (0-3)
dblsize Doubler la taille possible du sprite. A activer uniquement si on compte grossir et faire tourner le sprite
x Position X du sprite
y Position Y du sprite

inline void PA_DualCreateSpriteExFromGfx u8  obj_number,
u16 *  obj_gfx,
u8  obj_shape,
u8  obj_size,
u8  color_mode,
u8  palette,
u8  obj_mode,
bool  mosaic,
bool  hflip,
bool  vflip,
u8  prio,
bool  dblsize,
s16  x,
s16  y
[inline]
 

Creer un sprite avec ses gfx... Ceci est la version complexe de la fonction

Paramètres:
obj_number Numéro du sprite que vous voulez utiliser (de 0 à 127 pour chaque écran séparemment).
obj_gfx Gfx en mémoire à utiliser. On peut en avoir avec PA_GetSpriteGfx ou PA_CreateGfx
obj_shape Forme du sprite à charger, de 0 à 2. Utiliser la macro OBJ_SIZE_32X32 (...) pour charger la forme et la taille...
obj_size Taille du sprite. Utiliser la macro OBJ_SIZE_32X32 (...) pour charger la forme et la taille...
color_mode Mode 256 ou 16 couleurs (1 ou 0).
palette Palette à utiliser (0-15).
obj_mode Mode du sprite (normal, transparent, fenetre). Pas encore opérationnel, laisser à 0...
mosaic Activer le mode mosaique pour ce sprite. Pas encore au point...
hflip Flip horizontal activé ou non.
vflip Flip vertical...
prio Priorité du sprite vis-à-vis des fonds : devant quel fond l'afficher... (0-3)
dblsize Doubler la taille possible du sprite. A activer uniquement si on compte grossir et faire tourner le sprite
x Position X du sprite
y Position Y du sprite

inline void PA_DualCreateSpriteFromGfx u8  obj_number,
u16 *  obj_gfx,
u8  obj_shape,
u8  obj_size,
u8  color_mode,
u8  palette,
s16  x,
s16  y
[inline]
 

Creer un sprite avec ses gfx... Ceci est la version simple de la fonction

Paramètres:
obj_number Numéro du sprite que vous voulez utiliser (de 0 à 127 pour chaque écran séparemment).
obj_gfx Gfx en mémoire à utiliser. On peut en avoir avec PA_GetSpriteGfx ou PA_CreateGfx
obj_shape Forme du sprite à charger, de 0 à 2. Utiliser la macro OBJ_SIZE_32X32 (...) pour charger la forme et la taille...
obj_size Taille du sprite. Utiliser la macro OBJ_SIZE_32X32 (...) pour charger la forme et la taille...
color_mode Mode 256 ou 16 couleurs (1 ou 0).
palette Palette à utiliser (0-15).
x Position X du sprite
y Position Y du sprite

inline void PA_DualDeleteSprite u8  obj_number  )  [inline]
 

Effacer un sprite. S'il était le seul à utiliser un gfx, il sera effacé lui aussi

Paramètres:
obj_number Numéro du sprite

inline void PA_DualSetRotset u8  rotset,
s16  angle,
u16  zoomx,
u16  zoomy
[inline]
 

Faire tourner et zoomer un sprite

Paramètres:
rotset Rotset que l'on veut changer. Pour attribuer un rotset à un sprite, utiliser PA_SetSpriteRotEnable
angle Angle, entre 0 et 512 (et non 360, attention !)
zoomx Zoom horizontal. 256 est pas de zoom, 512 2 fois plus petit, et 128 2 fois plus grand... Ajuster au mieux ! :p
zoomy Zoom vertical. 256 est pas de zoom, 512 2 fois plus petit, et 128 2 fois plus grand... Ajuster au mieux ! :p

inline void PA_DualSetRotsetNoAngle u8  rotset,
u16  zoomx,
u16  zoomy
[inline]
 

Zoomer un sprite sans le faire tourner. C'est un peu plus rapide que la fonction PA_SetRotset

Paramètres:
rotset Rotset que l'on veut changer. Pour attribuer un rotset à un sprite, utiliser PA_SetSpriteRotEnable
zoomx Zoom horizontal. 256 est pas de zoom, 512 2 fois plus petit, et 128 2 fois plus grand... Ajuster au mieux ! :p
zoomy Zoom vertical. 256 est pas de zoom, 512 2 fois plus petit, et 128 2 fois plus grand... Ajuster au mieux ! :p

inline void PA_DualSetRotsetNoZoom u8  rotset,
s16  angle
[inline]
 

Faire tourner un sprite sans zoomer. C'est un peu plus rapide que la fonction PA_SetRotset

Paramètres:
rotset Rotset que l'on veut changer. Pour attribuer un rotset à un sprite, utiliser PA_SetSpriteRotEnable
angle Angle, entre 0 et 512 (et non 360, attention !)

inline void PA_DualSetSpriteAnim u8  sprite,
s16  animframe
[inline]
 

Régler l'image du sprite dans l'animation. Identique à PA_SetSpriteAnimEx, mais plus simple à utiliser, par contre plus lent

Paramètres:
sprite Numéro du sprite dans le systeme de sprite
animframe Frame de l'animation du sprite (0, 1, 2, etc...)

inline void PA_DualSetSpriteAnimEx u8  sprite,
u8  lx,
u8  ly,
u8  ncolors,
s16  animframe
[inline]
 

Régler l'image du sprite dans l'animation. Cette fonction est plus rapide que PA_SetSpriteAnim parce qu'elle n'a pas à rechercher les dimensions du sprite

Paramètres:
sprite Numéro du sprite dans le systeme de sprite
lx Largeur du sprite (8, 16, 32, 64)
ly Hauteur du sprite (8, 16, 32, 64)
ncolors Mode couleur du sprite (0 pour 16 couleurs, 1 pour 256)
animframe Frame de l'animation du sprite (0, 1, 2, etc...)

inline void PA_DualSetSpriteColors u8  sprite,
bool  n_colors
[inline]
 

Changer le mode de couleur du sprite

Paramètres:
sprite Numéro de l'objet dans le systeme de sprite
n_colors 0 pour 16 couleurs, 1 pour 256

inline void PA_DualSetSpriteDblsize u8  obj,
bool  dblsize
[inline]
 

Activer ou désactiver le mode Doublesize pour un sprite

Paramètres:
obj Numéro de l'objet dans le systeme de sprite
dblsize 1 pour l'activer, 0 pour l'inactiver

inline void PA_DualSetSpriteGfx u8  obj,
u16 *  gfx
[inline]
 

Modifier les graphismes utilisés par un sprite

Paramètres:
obj Numéro de l'objet dans le systeme de sprite
gfx Numéro du gfx en mémoire ; on peut obtenir un numéro avec PA_CreateGfx ou PA_GetSpriteGfx(obj_number);

inline void PA_DualSetSpriteHflip u8  obj,
bool  hflip
[inline]
 

Utiliser ou non le flip horizontal pour un sprite

Paramètres:
obj Numéro de l'objet dans le systeme de sprite
hflip Flip horizontal, 1 pour oui, 0 pour non...

inline void PA_DualSetSpriteMode u8  sprite,
u8  obj_mode
[inline]
 

Régler le mode d'un sprite : 0 pour normal, 1 pour transparent, 2 pour fenetre

Paramètres:
sprite Numéro de l'objet dans le systeme de sprite
obj_mode Mode : 0 pour normal, 1 pour transparent, 2 pour fenetre ; ne marche pas encore

inline void PA_DualSetSpriteMosaic u8  obj,
bool  mosaic
[inline]
 

Mettre ou non un sprite en mode mosaic

Paramètres:
obj Numéro de l'objet dans le systeme de sprite
mosaic Mode mosaic activé (1) ou désactivé (0)

inline void PA_DualSetSpritePal u8  obj,
u8  pal
[inline]
 

Changer la palette d'un sprite

Paramètres:
obj Numéro de l'objet dans le systeme de sprite
pal Numéro de la palette (de 0 à 15)

inline void PA_DualSetSpritePixel u8  sprite,
s16  x,
s16  y,
bool  color
[inline]
 

Mettre un pixel d'un sprite à une couleur donnée. Comme PA_SetSpritePixelEx, avec moins d'options, mais un peu plus lent

Paramètres:
sprite Numéro du sprite dans le systeme de sprite
x Coordonnée X du pixel à changer
y Coordonnée Y du pixel à changer
color Nouvelle couleur de la palette à metrre

inline void PA_DualSetSpritePixelEx u8  sprite,
u8  hsize,
u8  n_colors,
u8  x,
u8  y,
u8  color
[inline]
 

Mettre un pixel d'un sprite à une couleur donnée

Paramètres:
sprite Numéro du sprite dans le systeme de sprite
hsize Taille horizontale (8, 16...)
n_colors 0 ou 1 pour 16 ou 256 couleurs
x Coordonnée X du pixel à changer
y Coordonnée Y du pixel à changer
color Nouvelle couleur de la palette à metrre

inline void PA_DualSetSpritePrio u8  obj,
u8  prio
[inline]
 

Régler la priorité d'un sprite par rapport au Bg.

Paramètres:
obj Numéro de l'objet dans le systeme de sprite
prio Priorité du sprite : 0 est au-dessus du fond 0, 1 au-dessus du 1, etc... (0-3)

inline void PA_DualSetSpriteRotDisable u8  sprite  )  [inline]
 

Arreter de faire tourner et zoomer un sprite

Paramètres:
sprite Sprite que l'on veut faire tourner

inline void PA_DualSetSpriteRotEnable u8  sprite,
u8  rotset
[inline]
 

Faire tourner et zoomer un sprite

Paramètres:
sprite Sprite que l'on veut faire tourner
rotset Rotset que l'on veut pour un sprite donné (0-31). On peut a priori utiliser un rotset pour plusieurs sprites, s'ils sont zoomés/tournés pareil...

inline void PA_DualSetSpriteVflip u8  obj,
bool  vflip
[inline]
 

Utiliser ou non le flip vertical pour un sprite

Paramètres:
obj Numéro de l'objet dans le systeme de sprite
vflip Flip vertical, 1 pour oui, 0 pour non...

inline void PA_DualSetSpriteX u8  obj,
s16  x
[inline]
 

Position X du sprite à l'écran

Paramètres:
obj Numéro de l'objet dans le systeme de sprite
x Position X

inline void PA_DualSetSpriteXY u8  sprite,
s16  x,
s16  y
[inline]
 

Position X et Y du sprite à l'écran

Paramètres:
sprite Numéro du sprite dans le systeme de sprite
x Position Y
y Position Y

inline void PA_DualSetSpriteY u8  obj,
s16  y
[inline]
 

Position Y du sprite à l'écran

Paramètres:
obj Numéro de l'objet dans le systeme de sprite
y Position Y

inline void PA_DualUpdateGfx u16  gfx_number,
void *  obj_data
[inline]
 

Mettre à jour les Gfx d'un sprite donné

Paramètres:
gfx_number Numéro du Gfx en mémoire
obj_data Graphisme à charger

inline void PA_DualUpdateSpriteGfx u8  obj_number,
void *  obj_data
[inline]
 

Mettre à jour les Gfx d'un sprite donné

Paramètres:
obj_number Numéro de l'objet dans le systeme de sprite
obj_data Graphisme à charger

inline void PA_SetScreenSpace s16  ScreenSpace  )  [inline]
 

Désigner l'espace entre les 2 écrans, 48 pixels par défaut

Paramètres:
ScreenSpace Espace en pixels


Généré le Wed Dec 14 11:51:01 2005 pour PAlib par  doxygen 1.3.9.1