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
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
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
Peux-tu poster ton code pour que nous puissions t'aider en fonction de ce que tu as déjà entrepris ?
Hors ligne
Vous pourriez regarder avec les fonctions noLoop() et redraw()
https://processing.org/reference/noLoop_.html
Maintenant ça risque de bloquer votre saisie clavier.
Hors ligne
Pages: 1