Bonjour,
J'ai crée une image png IM 1 avec 2 carrés rouges avec fond transparent qui se déplace au dessus d'une autre image IM 3.
Lors du déplacement les carrés laissent un trace derrière eux. Donc au lieu d'avoir deux carrés qui traversent l'écran, j'ai deux lignes de la largeur des carrés qui s'affichent progressivement. Comme y remédier?
Merci d'avance
voici le prgramme
float X = -400;
void setup()
{
size (600, 500,P3D);
background( 0);
}
void draw(){
println(X);
IM();
CAR();
}
void RECT(){
pushMatrix();
fill(0);
rect(0,0,600,500,2);
popMatrix();
}
void IM() {
pushMatrix();
PImage monImage;
monImage = loadImage ("IM 1.png");
translate(200,100,5);
image (monImage,0,0);
popMatrix();
}
void CAR() {
pushMatrix();
smooth();
PImage tonImages;
tonImages = loadImage("IM3.png");
translate(X,0,15);
image (tonImages,0,0);
X +=1;
popMatrix();
}
Hors ligne
Alors de deux choses l'une :
Mets d'abord tes loadImage dans le setup.
Là tu les recharche à chaque frame alors qu'il suffit de les initialiser une seule fois.
Pour ce tes variables PImage doit être globale. Je te laisse chercher comment faire.
Ensuite utilise déplace ton background() au début du draw().
Tu y est presque
Hors ligne
Ok parfait, merci pour les renseignements.
Quel est l'intérêt de mettre le background() dans le draw() plutôt que dans le setup(), en quoi cela agit-il?
Hors ligne
En fait si tu mets le background() au début de la méthode draw() cela "efface" la fenêtre à chaque frame donc ensuite tu peux reconstruire ton image.
Dans le setup() cet effacement n'agit qu'au début.
Hors ligne
ok merci, je comprend mieux maintenant l'importance de mettre certaines infos dans le draw() plutôt que dans le setup(),, même si, ça parait évident une fois compris
Hors ligne
Pages: 1