Salut, je voudrais savoir en général comment on relance un setup et un draw. Par exemple, si l'utilisateur se trompe, je voudrais tout réinitialiser. ( cela correspondrait a enlever les "line" de mon code.)
Hors ligne
Hello...
Le setup() ne se lance qu'une fois, il est conçu pour cela...
Par contre, tu peux y définir des constantes d'initialisation que tu peux attribuer, à la demande, à tes variables...
Ce qui aura pour effet de "redémarrer" une partie de ton sketch...
Si tu as besoin de nettoyer ta scène de tes "lines", c'est que tu ne dois pas te servir de la fonction background() dans ton draw()...
Dans ce cas, en y faisant appel juste une fois, au moment de "redémarrer" justement, cela te videra ta scène...
Bon courage...
Edit : par "à la demande", penches toi sur la fonction keyPressed()
Hors ligne
Ok très bien merci.
De plus, j'ai une autre question. Je crée des classes dans un "new tab" pour clarifier mon programe. Utilisant ControlP5; j'ai tout importé dans ma classe et j'ai cette erreur "the constructor ControlP5(jeutest.compteut) is undefined" alors que j'ai importé dans ma classe, dans mon "main" la librairies et les objets en début de prog. Donc je ne comprends pas vraiment. Tu as une idée?
J'ai vu dans d'autres sites que cela pouvait venir à cause du "this" dans le newControlP5(this), mais je ne l'utilise qu'une seule fois.
Dernière modification par Miaou (2014-04-25 13:50:10)
Hors ligne
Ta question est un peu confuse, initialises-tu bien l'objet principal cp5 ou autre dans le setup() ?
Je suppose que tu as déclaré cet objet en variable globale ?
C'est assez abstrait de te répondre sans un bout de code, un os à ronger quoi !
Hors ligne
Je te comprends ^^ tient, le "main",
import controlP5.*; ControlP5 controlP5; Button b3; int x=0, y=0,n=100,k=1,i=0,j=0; int o=10, p=620; //texte rectangle. int temps=0; //compteur boolean text=false, etat; tableau tableau= new tableau(); tableau mouseReleased = new tableau(); tableau fond = new tableau(); compteur boutton = new compteur(); compteur horloge = new compteur(); compteur compteur = new compteur(); void draw() { tableau.tableau(); tableau.mouseReleased(); compteur.horloge(); if(etat==true){ compteur.compteur(); } } void setup() { frameRate(10); size(880,660); tableau.fond(); compteur.boutton(); }
et la classe que j'ai mis dans un new tab
Hors ligne
Attention à ne pas faire de confusion entre les onglets et les classes.
Quand tu créer un nouvel onglet pour séparer les parties du code l'IDE crée juste un autre fichier.
Les classes sont autre chose :
http://fr.flossmanuals.net/processing/ch021_les-objets
Si ton programme fonctionnait avant que tu décides de le séparer dans les onglets, reprends cette version, crée un nouvel onglet puis copie et colle dans le nouvel onglet la partie de code que tu veux séparer pour une meilleure lecture.
Qu'il y ait ou non des onglets le programme fonctionne de la même manière.
J'espère avoir été clair ?
Hors ligne
Oui très, j'ai compris. Mais j'ai réussi à créer une classe pour l'horloge, mais je n'y arrive pas pour le compteur. De plus, lorsque j'ai essayé sans créer de classe, tout le programme marche mais je n'arrive pas à cliquer dans le tableau pendant que le compteur est en marche
import controlP5.*; ControlP5 controlP5; Button b3; int x=0, y=0,n=100,k=1,i=0,j=0; int o=10, p=620; //texte rectangle. int temps=0; //compteur boolean text=false, etat; tableau tableau= new tableau(); tableau mouseReleased = new tableau(); tableau fond = new tableau(); void draw() { tableau.tableau(); tableau.mouseReleased(); if(etat==true){ // compteur.compteur(); horloge(); redraw(); if (etat) { compteur(); redraw(); } } //compteur.horloge(); } void setup() { frameRate(10); size(880,660); //compteur.boutton(); boutton(); tableau.fond(); }
J'ai essayé de mettre redraw(); de rajouter en plus mon tableau(), et mouseReleased(); de mettre une boucle qui ne tourne qu'une seule fois/boolean, ça ne marche pas.
Hors ligne
Pour faire fonctionner le compteur tu utilises la méthode delay(). Celle-ci boucle pendant une seconde et donc bloque tout le déroulement du programme.
Il faut sauvegarder le temps grâce à millis() lors de l'appui sur le le bouton et ensuite le comparer pour l'affichage avec le temps présent :
Hors ligne
Ouah, tu sais comment tout ça toi? ^^ Merci beaucoup pour tout. Quand tu cliques dans le tableau, est-ce que toi aussi ton tableau devient tout violet et quand tu cliques dans une cases il y a une croix violette moche qui apparaît?
Hors ligne
Tu n'as pas publié la classe tableau donc je ne peux pas du tout tester.
De plus, comme tu utilises déjà ControlP5, tu peux facilement intégrer un ControlTimer.
Dernière modification par Mushussu (2014-04-26 21:01:37)
Hors ligne