Rapidement, parce-que je file au TAF là…
1. La raquette sort de l’écran…
Normal, tu ne la replaces pas correctement… Ce n’est pas :
posY = gb.display.height();
Mais :
posY = gb.display.height() - hauteur;
2. Passer la variable hauteur
au modèle Paddle
Il suffit d’ajouter un argument h
au constructeur :
Paddle(uint8_t posX, uint8_t posY, uint8_t h)
: posX(posX)
, posY(posY)
, vitesse(V)
, hauteur(h) // <-- la hauteur de la raquette est donc paramétrable
, largeur(L)
{}
Ici tu ne peux utiliser la constante H
(hauteur fixée par défaut) définie dans Paddle
, puisque ton menu induit une hauteur variable…
3. Des couleurs différentes pour les raquettes
Même chose, tu peux ajouter un argument color
au constructeur, que tu dois stocker dans ton modèle pour l’utiliser au moment de dessiner la raquette :
struct Paddle {
static const uint8_t V = 2;
static const uint8_t L = 3;
uint8_t posX;
uint8_t posY;
uint8_t vitesse;
uint8_t hauteur;
uint8_t largeur;
Color color; // <-- chaque raquette a sa propre couleur
Paddle(uint8_t posX, uint8_t posY, uint8_t h, Color color) // <-- paramétrée ici
: posX(posX)
, posY(posY)
, vitesse(V)
, hauteur(h)
, largeur(L)
, color(color) // <-- on l'affecte au modèle ici
{}
void up() { posY -= V; }
void down() { posY += V; }
void update() {
uint8_t sh = gb.display.height();
if (posY < 0) posY = 0;
else if (posY + hauteur > sh) posY = sh - hauteur;
}
void draw() {
gb.display.setColor(color); // <-- et on fixe la bonne couleur à l'affichage
gb.display.fillRect(posX, posY, largeur, hauteur);
}
};
Il faut que tu poses un peu et que tu reprennes un à un les concepts que je t’ai présentés… Tu disposes maintenant de toute la logique pour parvenir à trouver les réponses à tes questions tout seul il me semble. Tu ne crois pas ? Tu as toutes les briques, il ne reste plus qu’à les assembler correctement
Tu peux aussi t’inspirer des exemples traités dans mon tuto Handling images on the Gamebuino Meta qui utilisent les mêmes concepts… Notamment ceux des chapitres :
- How to display your images
- How to move your sprite