Annonce

>>> Bienvenue sur codelab! >>> Première visite ? >>> quelques mots sur codelab //// une carte des membres//// (apéros) codelab


#1 2016-11-02 09:52:19 Problème de gestion position //Débutant

AceSeth
nouveau membre
Date d'inscription: 2016-11-02
Messages: 1

Problème de gestion position //Débutant



Bonjour à tous !
J'ai un léger problème, sûrement très simple à résoudre, mais que je n'arrive pas à trouver.
Dans la fenêtre ouverte, il y a une image censé réapparaître à l'écran chaque fois qu'elle en sort. J'avais donc ce code en tête :

PImage fond;
int positionFondX;

void setup ()
  {
    size (320,180);
    fond = loadImage("fond1.png");
    positionFondX = 0;
  }

void draw ()
  {
    nettoyer ();
    keyPressed ();
    deplacer ();
  }

void nettoyer ()
  {
    image (fond,positionFondX,0);

  }
void keyPressed ()
  {
     if (key == 'd') //Déplacement à droite
       {
         marcherD ();
       }
  }

void marcherD ()
  {
    positionFondX = positionFondX - 1;
  }
 
void deplacer ()
  {
    if (positionFondX == - 469);
      {
        positionFondX = 0;
      }
  }

Sauf que l'image en question ne se déplace plus. Quand je retire cette partie, elle se décale donc de 1 en 1 vers la gauche, mais quand la partie est active, l'image semble vouloir se déplacer, mais elle revient directement à un X = 0.

Si quelqu'un se sent de m'expliquer où se trouve mon erreur, je le remercie d'avance. Et merci aussi d'avoir pris le temps de lire, même sans y répondre.

Hors ligne

 

#2 2016-11-02 11:35:50 Re : Problème de gestion position //Débutant

Mushussu
membre
Lieu: Orléans
Date d'inscription: 2012-05-24
Messages: 802

Re: Problème de gestion position //Débutant



Bonjour,

Un des soucis qui t'a fait faire des erreurs est que tu ne respectes pas la convention d'écriture d'un code Java. Peut-être as-tu un prof qui t'impose cette manière d'écrire, mais ce n'est pas celle recommandé par Java :
http://www.oracle.com/technetwork/java/ … 36057.html

Ainsi à la suite d'un if dans la méthode déplacer tu as mis un point-virgule. Ce n'est pas une erreur donc le compilateur l'a accepté.

D'autre part tu as inclus dans la méthode draw() la méthode keyPressed() or cette dernière est appelé à chaque fois qu'une touche est pressée. C'est une interruption.
Le fait de créer une méthode pour chaque action est superfétatoire. Il vaut mieux commenter chaque ligne. Voici donc un code pour moi beaucoup plus lisible :

PImage fond;
int positionFondX;

void setup() {
  size (320, 180);
  fond = loadImage("http://www.millersoap.com/OlyViewsGarden/wallpaper/CrocBlPrl640X480.JPEG");
  positionFondX = 0;
}

void draw() {
  background(255);
  image (fond, positionFondX, 0);
}

void keyPressed() {
  if (key == 'd') { //Deplacement a droite
    positionFondX -= 10;
    if (positionFondX <= -fond.width) {
      positionFondX = 0;
    }
  }
}

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2024