Annonce

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


#1 2014-05-20 17:15:25 Arreter une fonction void sans provoquer l'arret général.

PHIFO
membre
Date d'inscription: 2014-04-27
Messages: 91

Arreter une fonction void sans provoquer l'arret général.



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

 

#2 2014-05-21 11:10:01 Re : Arreter une fonction void sans provoquer l'arret général.

Olivier
N°4
Lieu: Chalon sur la Saône
Date d'inscription: 2009-04-07
Messages: 1471
Site web

Re: Arreter une fonction void sans provoquer l'arret général.



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. smile


L'Amour au Peuple !

Hors ligne

 

#3 2014-05-21 11:14:30 Re : Arreter une fonction void sans provoquer l'arret général.

Olivier
N°4
Lieu: Chalon sur la Saône
Date d'inscription: 2009-04-07
Messages: 1471
Site web

Re: Arreter une fonction void sans provoquer l'arret général.



À moins que tu ne places pas la condition au bon endroit...

void draw() {

  if (frameCount > 600) {

    maFonction();
  }
}

void maFonction() {

  blabla...
}

Bon courage...


L'Amour au Peuple !

Hors ligne

 

#4 2014-05-21 13:36:12 Re : Arreter une fonction void sans provoquer l'arret général.

PHIFO
membre
Date d'inscription: 2014-04-27
Messages: 91

Re: Arreter une fonction void sans provoquer l'arret général.



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

 

#5 2014-05-21 13:48:34 Re : Arreter une fonction void sans provoquer l'arret général.

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

Re: Arreter une fonction void sans provoquer l'arret général.



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

 

#6 2014-05-21 15:02:02 Re : Arreter une fonction void sans provoquer l'arret général.

PHIFO
membre
Date d'inscription: 2014-04-27
Messages: 91

Re: Arreter une fonction void sans provoquer l'arret général.



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

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2025