Annonce

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


#1 2015-04-27 09:01:43 Mettre en pause le déroulement du programme

Picasso97
nouveau membre
Date d'inscription: 2015-04-27
Messages: 3

Mettre en pause le déroulement du programme



Bonjour,

Elèves en terminale S spécialité informatique, nous devons créer un programme avec Processing.
Nous rencontrons un problème pour sa réalisation.
Notre jeu n'étant pas un jeu d'animation, nous n'utilisons pas la fonction draw (car nous ne voulons pas qu'il s'effectue en boucle comme le permet la fonction draw), mais plutôt une fonction que nous avons nommé questionSuivante (notre jeu est en quelque sorte un "Qui-est-ce").

Notre problème : nous savons mettre le jeu en pause lorsqu'il s'agit de boucle dans le draw, mais dans notre fonction questionSuivante, nous n'y arrivons pas !

Vous vous demandez certainement pourquoi nous voulons le mettre en pause ? Eh bien c'est pour que la suite du programme ne se déroule pas tant que nous n'avons pas répondu ! (Pour répondre, l'utilisateur doit cliquer dans un rectangle vert ou dans une rectangle rouge, sa réponse étant oui ou non)

Pour résumer : il faut que le déroulement du programme s'arrête temporairement jusqu'à ce que l'utilisateur réponde, et le tout dans une fonction questionSuivante qui n'est donc pas draw...

Merci d'avance,

Picasso97

Hors ligne

 

#2 2015-04-27 09:49:33 Re : Mettre en pause le déroulement du programme

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

Re: Mettre en pause le déroulement du programme



Bonjour,

Si vous souhaitez utilisez la souris en donc être interactifs avec le programme, il ne faut pas utiliser des programmes statiques. Il faut donc vous résoudre à utiliser le mode normal.
C'est à vous à faire que le déroulement soit linéaire.

void setup() {
  size(350, 200);
}

void draw() {
  background(255);
  fill(255, 0, 0);
  rect(50, 50, 100, 100);
  fill(0, 255, 0);
  rect(200, 50, 100, 100);
  if (dansRectangle(50, 50, 100, 100) || dansRectangle(200, 50, 100, 100)) {
    println("Fin de l'attente");
  }
}

boolean dansRectangle(int x, int y, int l, int h) {
  if (mousePressed) {
    return ((mouseX > x) && (mouseX < x + l) && (mouseY > y) && (mouseY < y + h));
  } else {
    return false;
  }
}

Dernière modification par Mushussu (2015-04-27 09:50:17)

Hors ligne

 

#3 2015-04-27 11:25:58 Re : Mettre en pause le déroulement du programme

Picasso97
nouveau membre
Date d'inscription: 2015-04-27
Messages: 3

Re: Mettre en pause le déroulement du programme



Je vous remercie de votre réponse rapide.

C'est étrange car avec notre programme, l'interaction avec la souris fonctionne sans aucun problème sans le draw.
De plus, notre principal problème avec le draw est de générer un nombre aléatoire : nous voulons générer un seul nombre aléatoire, alors que dans le draw, l'action se répète infiniment donc nous ne pouvons avoir qu'un seul nombre.
Alors nous nous demandons, peut être à tord, si nous ne devrions pas plutôt rester avec notre fonction questionSuivante (et non le draw), et trouver un moyen d'arrêter temporairement l'exécution, peut être avec un booléen...

Hors ligne

 

#4 2015-04-27 13:45:40 Re : Mettre en pause le déroulement du programme

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

Re: Mettre en pause le déroulement du programme



Peux-tu poster ton code pour que nous puissions t'aider en fonction de ce que tu as déjà entrepris ?

Hors ligne

 

#5 2015-04-27 14:42:26 Re : Mettre en pause le déroulement du programme

matheynen
membre
Date d'inscription: 2008-06-09
Messages: 226

Re: Mettre en pause le déroulement du programme



Vous pourriez regarder avec les fonctions noLoop() et redraw()
https://processing.org/reference/noLoop_.html
Maintenant ça risque de bloquer votre saisie clavier.


Ce que vous avez fait au plus petit de mes frères, c'est à moi que vous l'avez fait.

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2025