head 1.1; branch 1.1.1; access ; symbols start:1.1.1.1 PAlibDoc:1.1.1; locks ; strict; comment @# @; 1.1 date 2005.11.02.08.30.32; author jandujar; state Exp; branches 1.1.1.1; next ; 1.1.1.1 date 2005.11.02.08.30.32; author jandujar; state Exp; branches ; next ; desc @@ 1.1 log @Initial revision @ text @ PA_lib: Référence du fichier PA_Keys.h

Référence du fichier PA_Keys.h

Everything concerning the keys and stylus. Plus de détails...

Aller au code source de ce fichier.

Structures de données

struct  PA_Pad
struct  PA_Stylus
struct  Pads
struct  PA_movingsprite

Macros

#define PA_BUTTONS   (*(volatile u16*)0x04000130)
#define REG_KEYCNT   (*(volatile u16*)0x04000132)
#define BUTTON_A   1
#define BUTTON_B   2
#define BUTTON_SELECT   4
#define BUTTON_START   8
#define BUTTON_RIGHT   16
#define BUTTON_LEFT   32
#define BUTTON_UP   64
#define BUTTON_DOWN   128
#define BUTTON_R   256
#define BUTTON_L   512
#define BUTTON_X   1024
#define BUTTON_Y   2048
#define UPDATEPAD(type, pad)
#define COPYPAD(new, old)
#define PA_MoveSprite(sprite)   PA_MoveSpriteEx(PA_Screen, sprite, PA_GetSpriteLx(0, sprite), PA_GetSpriteLy(0, sprite))
 Déplacer un sprite en fonction du stylet. Le sprite sera accroché si le stylet passe aud-dessus, puis il sera déplacé en fonction... Donne 1 si on a déplacé ce sprite, sinon 0. On peut ensuite récupérer des infos avec PA_MovedSprite.Moving (1 si on déplace un sprite), .Sprite (numéro du sprite déplacé), .X (position X du centre du sprite), .Y (position Y du centre du sprite déplacé), .Vx (vitesse horizontale du sprite déplacé !! Utile si l'on veut que le sprite continue à se déplacer par la suite...), et .Vy
#define PA_SpriteTouched(sprite)   PA_SpriteTouchedEx(sprite, PA_GetSpriteLx(PA_Screen, sprite), PA_GetSpriteLy(PA_Screen, sprite))
 Vérifie si l'on touche un sprite donné. Renvoie 1 si touché...
#define PA_StylusInZone(x1, y1, x2, y2)   ((Stylus.X>=x1)&&(Stylus.Y>=y1)&&(Stylus.X<x2)&&(Stylus.Y<y2))
 Vérifie si le stylet est dans une zone délimitée donnée... Renvoie 1 si oui, 0 sinon

Fonctions

void PA_UpdatePad (void)
 Permet de mettre à jour les touches appuyées. A utilisé une fois par frame (genre dans le vbl). On a ensuite accès aux touches pressées avec Pad.Held.A (ou Up, Down, L...), aux touches nouvellement pressées avec Pad.Newpress.R, et aux touches tout juste relachées avec Pad.Released.Up...
void PA_UpdateStylus (void)
 Mettre à jour la position du stylet. On peut vérifier si le stylet est actuellement sur l'écran (Stylus.Held), tout just appuyé (Stylus.Newpress), ou relaché (Stylus.Released), et obtenir sa position (Stylus.X, Stylus.Y).
bool PA_MoveSpriteEx (bool screen, u8 sprite, u8 lx, u8 ly)
 Déplacer un sprite en fonction du stylet. Voir PA_MoveSprite pour plus de détails. La différence est qu'ici on précise la largeur et la hauteur du sprite, utile si le sprite ne fait pas vraiment la meme taille que la taille standard DS (genre si c'est un sprite de 20x20). Ceci limitera donc aussi la distance d'accrochage
bool PA_MoveSpriteDistance (u8 sprite, u8 distance)
 Déplacer un sprite en fonction du stylet. Voir PA_MoveSprite pour plus de détails. La différence est qu'ici on précise la distance d'accrochage, en pixels
void PA_UpdateMoveSprite (void)
 Met à jour les infos de déplacement de sprites... Si on ne met pas ca dans le VBL (c'est déjà dans PA_InitVBL), alors on risque de ne pas pouvoir déplacer d'autre sprite...
bool PA_SpriteTouchedEx (u8 sprite, u8 lx, u8 ly)
 Vérifie si l'on touche un sprite donné. Renvoie 1 si touché... On peut choisir la hauteur et la largeur autour du sprite

Variables

PA_Stylus Stylus
Pads Pad
PA_Pad * PadPointer
PA_movingsprite PA_MovedSprite
u16 CompletePad
u16 ExPad
u16 TempPad


Description détaillée

Everything concerning the keys and stylus.

Update the keys and stylus inputs


Documentation des macro

#define COPYPAD new,
old   ) 
 

Valeur:

new.A = old.A;\
   new.B = old.B;\
   new.Select = old.Select;\
   new.Start = old.Start;\
   new.Right = old.Right;\
   new.Left = old.Left;\
   new.Up = old.Up;\
   new.Down = old.Down;\
   new.R = old.R;\
   new.L =  old.L;\
   new.X = old.X;\
   new.Y = old.Y;

#define UPDATEPAD type,
pad   ) 
 

Valeur:

type.A = pad & BUTTON_A;\
   type.B = (pad & BUTTON_B) >> 1;\
   type.Select = (pad & BUTTON_SELECT) >> 2;\
   type.Start = (pad & BUTTON_START) >> 3;\
   type.Right = (pad & BUTTON_RIGHT) >> 4;\
   type.Left = (pad & BUTTON_LEFT) >> 5;\
   type.Up = (pad & BUTTON_UP) >> 6;\
   type.Down = (pad & BUTTON_DOWN) >> 7;\
   type.R = (pad & BUTTON_R) >> 8;\
   type.L = (pad & BUTTON_L) >> 9;\
   type.X = (pad & BUTTON_X) >> 10;\
   type.Y = (pad & BUTTON_Y) >> 11;


Généré le Fri Oct 28 23:18:13 2005 pour PA_lib par  doxygen 1.3.9.1
@ 1.1.1.1 log @Initial import of PalibDoc, begin on PAlib0.64b @ text @@