PAlib: Key input system

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

# Key input system

## Macros

#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_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).
u8 | PA_MoveSpritePix (u8 sprite)

Déplacer un sprite en fonction du stylet, avec détection au pixel pret. Ceci est comme PA_MoveSprite, mais un peu plus lent, et nécessite PA_InitSpriteDraw(screen, sprite). 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 coin sup gauche du sprite), .Y (position Y du point sup gauche 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

u8 | PA_MoveSpriteEx (u8 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

u8 | 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...
u8 | 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
u8 | PA_SpriteTouched (u8 sprite)
| Vérifie si l'on touche un sprite donné. Renvoie 1 si touché...
u8 | PA_SpriteTouchedPix (u8 sprite)

## Description détaillée

Check which keys are pressed...

## Documentation des macro

#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

Paramètres:

  | sprite | Numéro de l'objet dans le systeme de sprite

#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

Paramètres:

  | x1 | Valeur X du coin supérieur gauche
  | y1 | Valeur Y du coin supérieur gauche
  | x2 | Valeur X du coin inférieur droit
  | y2 | Valeur Y du coin inférieur droit

## Documentation des fonctions

u8 PA_MoveSpriteDistance | ( | u8 | sprite,
|  | u8 | distance
| ) | `[inline]`

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

Paramètres:

  | sprite | Numéro de l'objet dans le systeme de sprite
  | distance | Distance d'accrochage

u8 PA_MoveSpriteEx | ( | u8 | 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

Paramètres:

  | screen | Sur quel écran le faire...
  | sprite | Numéro de l'objet dans le systeme de sprite
  | lx | Largeur du sprite
  | ly | Hauteur du sprite

u8 PA_MoveSpritePix | ( | u8 | sprite | ) |

Déplacer un sprite en fonction du stylet, avec détection au pixel pret. Ceci est comme PA_MoveSprite, mais un peu plus lent, et nécessite PA_InitSpriteDraw(screen, sprite). 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 coin sup gauche du sprite), .Y (position Y du point sup gauche 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

Paramètres:

  | sprite | Numéro de l'objet dans le systeme de sprite

inline u8 PA_SpriteTouched | ( | u8 | sprite | ) | `[inline]`

Vérifie si l'on touche un sprite donné. Renvoie 1 si touché...

Paramètres:

  | sprite | Numéro du sprite dans le systeme de sprite

inline u8 PA_SpriteTouchedEx | ( | u8 | sprite,
|  | u8 | lx,
|  | u8 | ly
| ) | `[inline]`

Vérifie si l'on touche un sprite donné. Renvoie 1 si touché... On peut choisir la hauteur et la largeur autour du sprite

Paramètres:

  | sprite | Numéro du sprite dans le systeme de sprite
  | lx | Largeur
  | ly | Hauter