Dans un programme où il y a plusieurs fonctions "void" je voudrais en arrêter une après un certain nombre d'images.
Je ne trouve pas l'instruction à utiliser pour arrêter cette fonction sans que cela influe sur le reste du programme.
la condition que j'utilise pour provoquer l'arrêt est la suivante.
if (frameCount >600) {
quelle instruction dois-je mettre pour provoquer l'arrêt de cette fonction.
Hors ligne
Je ne suis pas sûr de comprendre ta question,...
La condition que tu exprimes suffit à faire ce que tu souhaites...
C'est à dire que le bout de code qui suit ne sera exécuté que pour un frameCount > 600.
Tu n'auras donc pas à l'arrêter puisqu'il ne sera pas exécuté...
Sinon, il y a aussi la fonction "while" qui peut répondre à ton problème.
Bon courage.
Hors ligne
À moins que tu ne places pas la condition au bon endroit...
void draw() { if (frameCount > 600) { maFonction(); } } void maFonction() { blabla... }
Bon courage...
Hors ligne
Pour être plus précis, voici en simplifié ce que je veux faire;
un rectangle blanc s'affiche.
après 200 images un deuxième rectangle rouge apparait.
après 300 images le rectangle rouge disparait tout en ayant toujours le blanc d'affiché.
Voici comment j'écris ce programme. Ce qui me manque c'est l'instruction après if (frameCount>300) pour que le rectangle rouge disparaisse sans que le blanc disparaisse.
A la place du rectangle rouge, ça peut être une routine qui s'arrête au bout de 300 images sans que l'ensemble du programme ne s'arrête.
Je pense que là ma demande est plus claire.
void setup(){
size (300, 300);
background(0);
}
void draw() {
A();
B();
}
void A() {
pushMatrix();
fill(225);
rect( 30, 30, 60, 60);
popMatrix();
}
void B() {
pushMatrix();
if ( frameCount >200) {
fill(#FF0303);
rect( 60, 60, 100, 100);
}
if (frameCount>300){
information pour effacer le rectangle rouge aprés 300 images
}
popMatrix();
}
Hors ligne
En fait, pour dessiner en souhaitant avoir des éléments qui apparaissent, disparaissent ou bougent pendant une séquence, il est nécessaire à chaque tour de la boucle principal d'effacer puis de redessiner l'image.
Le paradigme est alors différent, on affiche le rectangle rouge quand le compteur de Frame est entre 200 et 300.
Voici ce que je te propose :
void setup() { size (300, 300); } void draw() { background(0); A(); B(); } void A() { pushMatrix(); fill(225); rect( 30, 30, 60, 60); popMatrix(); } void B() { pushMatrix(); if ((frameCount > 200) && (frameCount < 300)) { fill(#FF0303); rect( 60, 60, 100, 100); } popMatrix(); }
Hors ligne
Merci Mushussu, tu es souvent mon sauveur. J'ai presque honte de la simplicité de la solution. J'ignorais que l'on pouvait faire une double condition et surtout sa syntaxe.
Hors ligne
Pages: 1