PAlib: Bg Modes on 2 Screens

Page principale | Modules | Liste des fichiers | Portée globale | Rechercher

# Bg Modes on 2 Screens

## Macros

#define | PA_DualLoadTiledBg(bg_number, bg_name)
| On ne pourra jamais rendre ca plus simple... Charge un fond de type TiledBg converti avec PAGfx, en mettant les tiles, la map, et meme la palette ! Seulement en mode 256 couleurs. Sur 2 écrans, comme un seul grand
#define | PA_DualLoadSimpleBg(bg_select, bg_tiles, bg_map, bg_size, wraparound, color_mode)
| Facon la plus simple de cahrger un fond sur les 2 écrans
#define | PA_DualLoadRotBg(bg_select, bg_tiles, bg_map, bg_size, wraparound)
| Charger un fond pour les rotations/zoom ! Attention, il faut avant utiliser PA_SetVideoMode avec 1 pour utiliser un fond rotatif (le fond 3 uniquement !), ou 2 pour 2 fonds (2 et 3). Le fond DOIT etre de 256 couleurs
#define | PA_DualLoadBg(bg_select, bg_tiles, tile_size, bg_map, bg_size, wraparound, color_mode)
| Facon la plus simple de cahrger un fond. Combine PA_InitBg, PA_LoadBgTiles, et PA_LoadBgMap
#define | PA_DualLoadPAGfxLargeBg(bg_number, bg_name)
| Charger et initialiser un fond pour le scrolling infini (pour les fonds de plus de 512 pixels de haut ou de large), converti avec PAGfx. Fond sur les 2 écrans comme un seul
#define | PA_DualLoadLargeBg(bg_select, bg_tiles, bg_map, color_mode, lx, ly)
| Charger et initialiser un fond pour le scrolling infini (pour les fonds de plus de 512 pixels de haut ou de large), sur les 2 écrans
#define | PA_DualLoadLargeBgEx(bg_select, bg_tiles, tile_size, bg_map, color_mode, lx, ly)
| Charger et initialiser un fond pour le scrolling infini (pour les fonds de plus de 512 pixels de haut ou de large), mais ici on met soi-meme la taille des tiles

## Fonctions

void | PA_DualHideBg (u8 bg_select)
| Cacher un fond sur les 2 écrans
void | PA_DualShowBg (u8 bg_select)
| Afficher un fond auparavant caché sur les 2 écrans
void | PA_DualResetBg (void)
| Reinitialiser les fonds d'un écran. En fait ca ne fait que cacher tous les fonds
void | PA_DualDeleteBg (u8 bg_select)
| Effacer un fond complètement (tiles + map + cacher)
void | PA_DualSetBgRot (u8 bg_select, s32 x_scroll, s32 y_scroll, s32 x_rotcentre, s32 y_rotcentre, s16 bg_angle, s32 bg_zoom)
void | PA_DualBGScrollX (u8 bg_number, s16 x)
| Scroll horizontal de n'importe quel fond, sur les 2 écrans
void | PA_DualBGScrollY (u8 bg_number, s16 y)
| Scroll vertical de n'importe quel fond
void | PA_DualBGScrollXY (u8 bg_number, s16 x, s16 y)
| Scroll horizontal et vertical de n'importe quel fond
void | PA_DualInfLargeScrollX (u8 bg_select, s32 x)
| Déplacer un fond à scrolling 'infini' horizontalement. Doit etre initialisé avec PA_LoadLargeBg.
void | PA_DualInfLargeScrollY (u8 bg_select, s32 y)
| Déplacer un fond à scrolling 'infini' verticalement. Doit etre initialisé avec PA_LoadLargeBg.
void | PA_DualInfLargeScrollXY (u8 bg_select, s32 x, s32 y)
| Déplacer un fond à scrolling 'infini' horizontalement et verticalement. Doit etre initialisé avec PA_LoadLargeBg.
void | PA_DualLargeScrollX (u8 bg_select, s32 x)
| Déplacer un grand fond à scrolling horizontalement.Doit etre initialisé avec PA_LoadLargeBg. Cette fonction ne permet pas au fond de 'boucler' sur lui-meme, mais est bien plus rapide que InfLargeScroll...
void | PA_DualLargeScrollY (u8 bg_select, s32 y)
void | PA_DualLargeScrollXY (u8 bg_select, s32 x, s32 y)
| Déplacer un grand fond à scrolling horizontalement et verticalement. Doit etre initialisé avec PA_LoadLargeBg. Cette fonction ne permet pas au fond de 'boucler' sur lui-meme, mais est bien plus rapide que InfLargeScroll...
void | PA_DualInitParallaxX (s32 bg0, s32 bg1, s32 bg2, s32 bg3)
| Initialiser le Parallax Scrolling pour plusieurs fonds, horizontalement. Choix de la vitesse à laquelle les fonds vont défiler par rapport aux autres... Utiliser PA_ParallaxScrollX par la suite pour scroller
void | PA_DualInitParallaxY (s32 bg0, s32 bg1, s32 bg2, s32 bg3)
| Initialiser le Parallax Scrolling pour plusieurs fonds, horizontalement. Choix de la vitesse à laquelle les fonds vont défiler par rapport aux autres... Utiliser PA_ParallaxScrollX par la suite pour scroller
void | PA_DualParallaxScrollX (s32 x)
| Déplacer les fonds activés pour le parallax...
void | PA_DualParallaxScrollY (s32 y)
| Déplacer les fonds activés pour le parallax...
void | PA_DualParallaxScrollXY (s32 x, s32 y)
| Déplacer les fonds activés pour le parallax...
void | PA_DualSetBgPrio (u8 bg, u8 prio)
| Changer la priorité d'un fond

## Description détaillée

Load tiles, a map, scroll it... and 2 screens automatically

## Documentation des macro

#define PA_DualLoadBg | ( | bg_select,
|  | bg_tiles,
|  | tile_size,
|  | bg_map,
|  | bg_size,
|  | wraparound,
|  | color_mode |  | ) |

Valeur:

    {\
    PA_LoadBg(0, bg_select, bg_tiles, tile_size, bg_map, bg_size, wraparound, color_mode);\
    PA_LoadBg(1, bg_select, bg_tiles, tile_size, bg_map, bg_size, wraparound, color_mode);\
    PA_DualBGScrollY(bg_select, 0);}

Facon la plus simple de cahrger un fond. Combine PA_InitBg, PA_LoadBgTiles, et PA_LoadBgMap

Paramètres:

  | bg_select | Numéro du fond que l'on veut charger (de 0 à 3 en mode 0, uniquement 2 et 3 en mode 2)
  | bg_tiles | Nom du tableau contenant les tiles (exemple: ship_Tiles)
  | tile_size | Taille du tilset
  | bg_map | Nom du tableau contenant les infos sur la map (exemple : ship_Map)
  | bg_size | Taille du fond. Ceci est très important, car ça détermine aussi si le Bg est rotatif ou non. Pour un fond normal, on utilise les macros BG_256X256, BG_256X512, etc... Por un fond rotatif, il suffit d'utiliser BG_ROT_128X128...
  | wraparound | Si le fond boucle ou non. C'est plus important pour les fonds rotatifs...
  | color_mode | Nombre de couleurs : 0 pour 16 couleurs, 1 pour 256

#define PA_DualLoadLargeBg | ( | bg_select,
|  | bg_tiles,
|  | bg_map,
|  | color_mode,
|  | lx,
|  | ly |  | ) |

Valeur:

    {\
    PA_LoadLargeBg(0, bg_select, bg_tiles, bg_map, color_mode, lx, ly);\
    PA_LoadLargeBg(1, bg_select, bg_tiles, bg_map, color_mode, lx, ly);\
    PA_DualInfLargeScrollY(bg_select, 0);}

Charger et initialiser un fond pour le scrolling infini (pour les fonds de plus de 512 pixels de haut ou de large), sur les 2 écrans

Paramètres:

  | bg_select | Numéro du fond que l'on veut charger (de 0 à 3 en mode 0, uniquement 2 et 3 en mode 2)
  | bg_tiles | Nom du tableau contenant les tiles (exemple: ship_Tiles)
  | bg_map | Nom du tableau contenant les infos sur la map (exemple : ship_Map)
  | color_mode | Nombre de couleurs : 0 pour 16 couleurs, 1 pour 256
  | lx | Largeur, en tiles. Un fond de 512 pixels de large fera 64 tiles de large.
  | ly | Hauteur, en tiles. Un fond de 512 pixels de hauy fera 64 tiles de haut.

#define PA_DualLoadLargeBgEx | ( | bg_select,
|  | bg_tiles,
|  | tile_size,
|  | bg_map,
|  | color_mode,
|  | lx,
|  | ly |  | ) |

Valeur:

    {\
    PA_LoadLargeBgEx(0, bg_select, bg_tiles, tile_size, bg_map, color_mode, lx, ly);\
    PA_LoadLargeBgEx(1, bg_select, bg_tiles, tile_size, bg_map, color_mode, lx, ly);\
    PA_DualInfLargeScrollY(bg_select, 0);}

Charger et initialiser un fond pour le scrolling infini (pour les fonds de plus de 512 pixels de haut ou de large), mais ici on met soi-meme la taille des tiles

Paramètres:

  | bg_select | Numéro du fond que l'on veut charger (de 0 à 3 en mode 0, uniquement 2 et 3 en mode 2)
  | bg_tiles | Nom du tableau contenant les tiles (exemple: ship_Tiles)
  | tile_size | Taille du tilset
  | bg_map | Nom du tableau contenant les infos sur la map (exemple : ship_Map)
  | color_mode | Nombre de couleurs : 0 pour 16 couleurs, 1 pour 256
  | lx | Largeur, en tiles. Un fond de 512 pixels de large fera 64 tiles de large.
  | ly | Hauteur, en tiles. Un fond de 512 pixels de hauy fera 64 tiles de haut.

#define PA_DualLoadPAGfxLargeBg | ( | bg_number,
|  | bg_name |  | ) |

Valeur:

    {\
           PA_LoadPAGfxLargeBg(0, bg_number, bg_name);\
           PA_LoadPAGfxLargeBg(1, bg_number, bg_name);\
           PA_DualInfLargeScrollY(bg_number, 0);}

Charger et initialiser un fond pour le scrolling infini (pour les fonds de plus de 512 pixels de haut ou de large), converti avec PAGfx. Fond sur les 2 écrans comme un seul

Paramètres:

  | bg_number | Numéro du fond que l'on veut charger (0-3)
  | bg_name | Nom du fond dans PAGfx

#define PA_DualLoadRotBg | ( | bg_select,
|  | bg_tiles,
|  | bg_map,
|  | bg_size,
|  | wraparound |  | ) |

Valeur:

    {\
    PA_LoadRotBg(0, bg_select, bg_tiles, bg_map, bg_size, wraparound);\
    PA_LoadRotBg(1, bg_select, bg_tiles, bg_map, bg_size, wraparound);\
    PA_DualBGScrollY(bg_select, 0);}

Charger un fond pour les rotations/zoom ! Attention, il faut avant utiliser PA_SetVideoMode avec 1 pour utiliser un fond rotatif (le fond 3 uniquement !), ou 2 pour 2 fonds (2 et 3). Le fond DOIT etre de 256 couleurs

Paramètres:

  | bg_select | Numéro du fond que l'on veut charger
  | bg_tiles | Nom du tableau contenant les tiles (exemple: ship_Tiles)
  | bg_map | Nom du tableau contenant les infos sur la map (exemple : ship_Map)
  | bg_size | Taille du fond. Utiliser les macros suivantes : BG_ROT_128X128, ou 256X256, 512X512, ou enfin 1024X1024
  | wraparound | Si le fond boucle ou non.

#define PA_DualLoadSimpleBg | ( | bg_select,
|  | bg_tiles,
|  | bg_map,
|  | bg_size,
|  | wraparound,
|  | color_mode |  | ) |

Valeur:

    {\
    PA_LoadSimpleBg(0, bg_select, bg_tiles, bg_map, bg_size, wraparound, color_mode);\
    PA_LoadSimpleBg(1, bg_select, bg_tiles, bg_map, bg_size, wraparound, color_mode);\
    PA_DualBGScrollY(bg_select, 0);}

Facon la plus simple de cahrger un fond sur les 2 écrans

Paramètres:

  | bg_select | Numéro du fond que l'on veut charger (de 0 à 3 en mode 0, uniquement 2 et 3 en mode 2)
  | bg_tiles | Nom du tableau contenant les tiles (exemple: ship_Tiles)
  | bg_map | Nom du tableau contenant les infos sur la map (exemple : ship_Map)
  | bg_size | Taille du fond. Pour un fond normal, on utilise les macros BG_256X256, BG_256X512, etc...
  | wraparound | Si le fond boucle ou non. C'est plus important pour les fonds rotatifs...
  | color_mode | Nombre de couleurs : 0 pour 16 couleurs, 1 pour 256

#define PA_DualLoadTiledBg | ( | bg_number,
|  | bg_name |  | ) |

Valeur:

    {\
           PA_LoadTiledBg(0, bg_number, bg_name);\
           PA_LoadTiledBg(1, bg_number, bg_name);\
           PA_DualBGScrollY(bg_number, 0);}

On ne pourra jamais rendre ca plus simple... Charge un fond de type TiledBg converti avec PAGfx, en mettant les tiles, la map, et meme la palette ! Seulement en mode 256 couleurs. Sur 2 écrans, comme un seul grand

Paramètres:

  | bg_number | Numéro du fond que l'on veut charger (de 0 à 3 en mode 0, uniquement 2 et 3 en mode 2)
  | bg_name | Nom du fond, comme bg0

## Documentation des fonctions

inline void PA_DualBGScrollX | ( | u8 | bg_number,
|  | s16 | x
| ) | `[inline]`

Scroll horizontal de n'importe quel fond, sur les 2 écrans

Paramètres:

  | bg_number | Numéro du fond que l'on veut tourner (0-3)
  | x | Valeur X à déplacer, horizontalement...

inline void PA_DualBGScrollXY | ( | u8 | bg_number,
|  | s16 | x,
|  | s16 | y
| ) | `[inline]`

Scroll horizontal et vertical de n'importe quel fond

Paramètres:

  | bg_number | Numéro du fond que l'on veut tourner (0-3)
  | x | Valeur X à déplacer, horizontalement...
  | y | Valeur Y à déplacer, verticalement...

inline void PA_DualBGScrollY | ( | u8 | bg_number,
|  | s16 | y
| ) | `[inline]`

Scroll vertical de n'importe quel fond

Paramètres:

  | bg_number | Numéro du fond que l'on veut tourner (0-3)
  | y | Valeur Y à déplacer, verticalement...

inline void PA_DualDeleteBg | ( | u8 | bg_select | ) | `[inline]`

Effacer un fond complètement (tiles + map + cacher)

Paramètres:

  | bg_select | Numéro du fond que l'on veut charger (de 0 à 3 en mode 0, uniquement 2 et 3 en mode 2)

inline void PA_DualHideBg | ( | u8 | bg_select | ) | `[inline]`

Cacher un fond sur les 2 écrans

Paramètres:

  | bg_select | Numéro du fond que l'on veut charger (de 0 à 3 en mode 0, uniquement 2 et 3 en mode 2)

inline void PA_DualInfLargeScrollX | ( | u8 | bg_select,
|  | s32 | x
| ) | `[inline]`

Déplacer un fond à scrolling 'infini' horizontalement. Doit etre initialisé avec PA_LoadLargeBg.

Paramètres:

  | bg_select | Numéro du fond que l'on veut charger (de 0 à 3 en mode 0, uniquement 2 et 3 en mode 2)
  | x | Valeur X à déplacer

inline void PA_DualInfLargeScrollXY | ( | u8 | bg_select,
|  | s32 | x,
|  | s32 | y
| ) | `[inline]`

Déplacer un fond à scrolling 'infini' horizontalement et verticalement. Doit etre initialisé avec PA_LoadLargeBg.

Paramètres:

  | bg_select | Numéro du fond que l'on veut charger (de 0 à 3 en mode 0, uniquement 2 et 3 en mode 2)
  | x | Valeur X à déplacer
  | y | Valeur Y à déplacer

inline void PA_DualInfLargeScrollY | ( | u8 | bg_select,
|  | s32 | y
| ) | `[inline]`

Déplacer un fond à scrolling 'infini' verticalement. Doit etre initialisé avec PA_LoadLargeBg.

Paramètres:

  | bg_select | Numéro du fond que l'on veut charger (de 0 à 3 en mode 0, uniquement 2 et 3 en mode 2)
  | y | Valeur Y à déplacer

inline void PA_DualInitParallaxX | ( | s32 | bg0,
|  | s32 | bg1,
|  | s32 | bg2,
|  | s32 | bg3
| ) | `[inline]`

Initialiser le Parallax Scrolling pour plusieurs fonds, horizontalement. Choix de la vitesse à laquelle les fonds vont défiler par rapport aux autres... Utiliser PA_ParallaxScrollX par la suite pour scroller

Paramètres:

  | bg0 | Valeur pour le premier fond (0). 256 met en vitesse normal, moins pour moins lent (128 pour moitié de vitesse), plus pour plus rapide (512 équivaut à 2 fois plus vite). On peut utiliser des valeurs négatives. 0 désactive le scrolling parallax pour ce fond
  | bg1 | Idem, pour le Fond 1
  | bg2 | Idem, pour le Fond 2
  | bg3 | Idem, pour le Fond 3

inline void PA_DualInitParallaxY | ( | s32 | bg0,
|  | s32 | bg1,
|  | s32 | bg2,
|  | s32 | bg3
| ) | `[inline]`

Initialiser le Parallax Scrolling pour plusieurs fonds, horizontalement. Choix de la vitesse à laquelle les fonds vont défiler par rapport aux autres... Utiliser PA_ParallaxScrollX par la suite pour scroller

Paramètres:

  | bg0 | Valeur pour le premier fond (0). 256 met en vitesse normal, moins pour moins lent (128 pour moitié de vitesse), plus pour plus rapide (512 équivaut à 2 fois plus vite). On peut utiliser des valeurs négatives. 0 désactive le scrolling parallax pour ce fond
  | bg1 | Idem, pour le Fond 1
  | bg2 | Idem, pour le Fond 2
  | bg3 | Idem, pour le Fond 3

inline void PA_DualLargeScrollX | ( | u8 | bg_select,
|  | s32 | x
| ) | `[inline]`

Déplacer un grand fond à scrolling horizontalement.Doit etre initialisé avec PA_LoadLargeBg. Cette fonction ne permet pas au fond de 'boucler' sur lui-meme, mais est bien plus rapide que InfLargeScroll...

Paramètres:

  | bg_select | Numéro du fond que l'on veut charger (de 0 à 3 en mode 0, uniquement 2 et 3 en mode 2)
  | x | Valeur X à déplacer

inline void PA_DualLargeScrollXY | ( | u8 | bg_select,
|  | s32 | x,
|  | s32 | y
| ) | `[inline]`

Déplacer un grand fond à scrolling horizontalement et verticalement. Doit etre initialisé avec PA_LoadLargeBg. Cette fonction ne permet pas au fond de 'boucler' sur lui-meme, mais est bien plus rapide que InfLargeScroll...

Paramètres:

  | bg_select | Numéro du fond que l'on veut charger (de 0 à 3 en mode 0, uniquement 2 et 3 en mode 2)
  | x | Valeur X à déplacer
  | y | Valeur Y à déplacer

inline void PA_DualParallaxScrollX | ( | s32 | x | ) | `[inline]`

Déplacer les fonds activés pour le parallax...

Paramètres:

  | x | Valeur X à déplacer

inline void PA_DualParallaxScrollXY | ( | s32 | x,
|  | s32 | y
| ) | `[inline]`

Déplacer les fonds activés pour le parallax...

Paramètres:

  | x | Valeur X à déplacer
  | y | Valeur Y à déplacer

inline void PA_DualParallaxScrollY | ( | s32 | y | ) | `[inline]`

Déplacer les fonds activés pour le parallax...

Paramètres:

  | y | Valeur Y à déplacer

inline void PA_DualSetBgPrio | ( | u8 | bg,
|  | u8 | prio
| ) | `[inline]`

Changer la priorité d'un fond

Paramètres:

  | bg | Numéro du fond...
  | prio | Niveau de priorité, de 0 à 3, 0 étant priorité la plus élevée

inline void PA_DualShowBg | ( | u8 | bg_select | ) | `[inline]`

Afficher un fond auparavant caché sur les 2 écrans

Paramètres:

  | bg_select | Numéro du fond que l'on veut charger (de 0 à 3 en mode 0, uniquement 2 et 3 en mode 2)