Personnage en arrière plan

Bonjour, j’essaie de m’exercer pour un concours de prog vendredi (je vous passe les détails mais c’est un truc dans un lycée ou peu de mon sont entraîné) mais du coup ma texture d’eau est tout le temps en mouvement et empêche mon surfer d’être affiché à l’écran et je sais pas comment régler ce problème. Merci de votre aide
Image myImg(myImgBuf);

Image surfer(surferBuf);

int watermove1 = -32;
int watermove2 = 0;
int watermove3 = 32;
int watermove4 = 64;
int y_player = 10;
int x_player = 10;
  
void setup() {
  gb.begin();


}

void setbackground(){
    gb.display.drawImage(watermove1, 0, myImg);
    gb.display.drawImage(watermove1, 32, myImg);
    gb.display.drawImage(watermove2, 0, myImg);
    gb.display.drawImage(watermove2, 32, myImg);
    gb.display.drawImage(watermove3,0, myImg);
    gb.display.drawImage(watermove3,32, myImg);
    gb.display.drawImage(watermove4,0, myImg);
    gb.display.drawImage(watermove4,32, myImg);
  }
    
void loop() {
  
  while(!gb.update());
  gb.display.clear();
  gb.lights.fill(BLUE);
  gb.sound.play("VAGUE.WAV");
  
  background();

  gb.display.drawImage(x_player, y_player, surfer);
    
  if(gb.buttons.repeat(BUTTON_UP,2) && y_player > 0){
     y_player = y_player - 2 ;
     gb.display.drawImage(x_player, y_player, surfer);}
  if(gb.buttons.repeat(BUTTON_DOWN,2) && y_player < 56){
     y_player = y_player + 2 ;
     gb.display.drawImage(x_player, y_player, surfer);}
  if(gb.buttons.repeat(BUTTON_LEFT,2) && x_player > 0){
     x_player = x_player - 2 ;
     gb.display.drawImage(x_player, y_player, surfer);}
  if(gb.buttons.repeat(BUTTON_RIGHT,2) && x_player < 70){
     x_player = x_player + 2 ;
     gb.display.drawImage(x_player, y_player, surfer);}
}

// boucle incrémentant la variable i de 0 à 255, de 1 en 1
void background() {
for (int i=0; i <= 30; i++){
setbackground();
watermove1 = watermove1 + 1;
watermove2 = watermove2 + 1;
watermove3 = watermove3 + 1;
watermove4 = watermove4 + 1;
delay(50);
}
watermove1 = -32;
watermove2 = 0;
watermove3 = 32;
watermove4 = 64;
}

Bon ce n’est pas grand chose mais tu dessines ton personnage et après tu dessines le fond.
Il suffit que tu dessines ton personnage après avoir dessiné ton fond (tu commences toujours par dessiner ton fond).
Après tu peux optimiser un peu ton programme comme tes images bougent toutes en même temps, tu peux avoir juste un offset de déplacement.
Enfin un dernier conseil, calcul les coordonnées de ton surfer et dessines le une seule fois.
En remaniant ton programme, ça pourrait donner quelque chose comme ça (je n’ai remise que le bout que tu avais mis, c’est juste pour t’illustrer la solution)

Image surfer(surferBuf);

int offset = 0;
int y_player = 10;
int x_player = 10;
  
void setup() {
  gb.begin();
}

void background() {
 offset++;
 if(offset>32) {
    offset = 0;
 }
    gb.display.drawImage(offset -32, 0, myImg);
    gb.display.drawImage(offset -32, 32, myImg);
    gb.display.drawImage(offset, 0, myImg);
    gb.display.drawImage(offset, 32, myImg);
    gb.display.drawImage(offset +32,0, myImg);
    gb.display.drawImage(offset +32,32, myImg);
    gb.display.drawImage(offset +64,0, myImg);
    gb.display.drawImage(offset +64,32, myImg);
}
    
void loop() {  
  while(!gb.update());
  gb.display.clear();
  gb.lights.fill(BLUE);
  gb.sound.play("VAGUE.WAV");
   
  // Gestion des touches 
  if(gb.buttons.repeat(BUTTON_UP,2) && y_player > 0){
     y_player = y_player - 2 ;
  }
  if(gb.buttons.repeat(BUTTON_DOWN,2) && y_player < 56){
     y_player = y_player + 2 ;
  }
  if(gb.buttons.repeat(BUTTON_LEFT,2) && x_player > 0){
     x_player = x_player - 2 ;
  }
  if(gb.buttons.repeat(BUTTON_RIGHT,2) && x_player < 70){
     x_player = x_player + 2 ;
  }
  
  // Gestion de l'affichage
  background();
  gb.display.drawImage(x_player, y_player, surfer);
}

Merci beaucoup beaucoup :slightly_smiling_face: vous me débloquez

mdr Wabfall pk ta copier-coller un prog on est dans le même lycée

J’ai rien copié mdr, je veux juste essayer d’avoir un jeu qui fonctionne et que je comprend

Jveux un minimum me défendre aussi, chuis désavantagé forcément je connais que le python

Fait un jeu original ou prend la base qu’on ta donnez sur l’ENT

On m’a rien donné du tout, et du coup oui c’est un jeu original

ça fait deux aprem que je me casse le cul pour qu’on me dise, mdrr vas y prend une base existante, j’ai la rage un peu

Ok.

Le truc surtout c’est de comprendre. Suis bien les tutos si tu peux.
Ca permet aussi de comprendre la structure et n’hésites pas à poser des questions.
Bonnes créations à vous deux et après le concours j’espère que l’on verra 2 belles créations et surtout que l’on aura 2 personnes qui auront envie d’en refaire d’autre.
Si vous êtes motivés, si vous savez ce que vous voulez faire, on pourra vous aider.