Petit problème .

edited March 2016 in Questions about Code

Bonjour, j'ai un problème, j'aimerais mettre en relation la réponse d'un Dialog car pour un jeu, selon la reponse, la vitesse de mon objet changerait. J'ai besoin de cette aide pour avancer dans mon programme que je souhaiterais présenter pour le BAC. Merci

Answers

  • String s = "";
    float r = 0;
    
    void setup(){
      size(400,400);
    }
    
    void draw(){
      background(0);
      if(s.length() >0 ){
        r+=float(s)/100;
      }
      r%=360;
      translate(200,200);
      fill(255);
      text(s,0,0);
      rotate(radians(r));
      fill(0,255,0);
      noStroke();
      ellipse(150,0,20,20);
    }
    
    void keyPressed(){
      if(key>='0' && key <= '9'){
        s+=char(key);
      }
      if(key==' '){
        s = "";
      }
    }
    
  • edited March 2016

    Merci pour ta réponse qui enfaite ne m'aide pas tellement pour le programme que je compte présenter. En réalité mon programme est pas super complexe, mais voici le code pour que tu puisse voir ce qu'il faut modifier:

    import javax.swing.*;   //importation de la bibliothèque de Java en entière
    
    void setup() {    //Définition des caractéristiques du sketch
    JOptionPane.showMessageDialog(null,"Utilisez les flèche directionnelles pour démarrer le jeu et vous déplacer");   //Affichage d'un messages d'instruction
     String s =(String)JOptionPane.showInputDialog(null,"choisissez une vitesse entre 1 et 5","Dialog",JOptionPane.PLAIN_MESSAGE);   //Affichage d'un mesage demandant une réponse
     int v= Integer.parseInt(s);
     size(500,500);   //Taille du sketch
      ellipse(x,y,50,25);   //Création de l'éllipse
    }
    
    float x=50, y=50;   //Position initiale de l'ellipse
    
    void draw(){ 
    
    if(v==1){   //Condition de la vitesse niveau 1
      background(255,190,100);   
          if(keyCode==UP){
            x += 0;  
            y += -2;
            ellipse(x,y,25,50);
          }
          if(keyCode==DOWN){
            x += 0;
            y += +2;
            ellipse(x,y,25,50);
          }
          if(keyCode==LEFT){
            x += -2;
            y += 0;
            ellipse(x,y,50,25);
          }
          if(keyCode==RIGHT){
            x += +2;
            y += 0;
            ellipse(x,y,50,25);
          }
          if(x<50){
            x = 50;
          }
          if(x>450){
            x = 450;
          }
          if(y<50){
            y = 50;
          }
          if(y>450){
            y = 450;
          }
    }
    
    if(v==2){   //Condition de la vitesse niveau 2
        background(255,30,180);    
          if(keyCode==UP){
            x += 0;  
            y += -5;
            ellipse(x,y,25,50);
          }
          if(keyCode==DOWN){
            x += 0;
            y += +5;
            ellipse(x,y,25,50);
          }
          if(keyCode==LEFT){
            x += -5;
            y += 0;
            ellipse(x,y,50,25);
          }
          if(keyCode==RIGHT){
            x += +5;
            y += 0;
            ellipse(x,y,50,25);
          }
          if(x<50){
            x = 50;
          }
          if(x>450){
            x = 450;
          }
          if(y<50){
            y = 50;
          }
          if(y>450){
            y = 450;
          }
    }
    
    if(v==3){   //Condition de la vitesse niveu 3
        background(255,190,200);    
          if(keyCode==UP){
            x += 0;  
            y += -8;
            ellipse(x,y,25,50);
          }
          if(keyCode==DOWN){
            x += 0;
            y += +8;
            ellipse(x,y,25,50);
          }
          if(keyCode==LEFT){
            x += -8;
            y += 0;
            ellipse(x,y,50,25);
          }
          if(keyCode==RIGHT){
            x += +8;
            y += 0;
            ellipse(x,y,50,25);
          }
          if(x<50){
            x = 50;
          }
          if(x>450){
            x = 450;
          }
          if(y<50){
            y = 50;
          }
          if(y>450){
            y = 450;
          }
    }
    
    }
    

    Ps: je ne sais pas comment faire la même présentation que toi du coup ça met tout à la suite.

  • edited March 2016

    Modifier votre message. Sélectionnez votre programme . Appuyez sur Ctrl + o .

  • Merci c'est bon Peux-tu m'aider à résoudre le problème de mon "programme" ?

  • Votre variable v est local à la setup( ). Il doit être une variable globale de sorte que vous pouvez utiliser sa valeur dans draw() aussi.

    import javax.swing.*;
    
    int v; // <--- !!!!!!!!
    
    void setup() {
      size(500, 500); // Always first!
      JOptionPane.showMessageDialog(null, "DIRECTIONS");
      String s =(String)JOptionPane.showInputDialog(null, "PICK A NUMBER FROM 1 TO 5", "Dialog", JOptionPane.PLAIN_MESSAGE);
      v= Integer.parseInt(s);
    }
    
  • Lorsque je lance le programme ils me disent : "Cannot find anything names "s" " Pourtant s est défini par le String dans le setup .

  • Answer ✓

    Postez le code que vous essayez d'exécuter à chaque fois. s variable est uniquement valable à l'intérieur de la setup( ) parce qu'elle est une variable locale . La variable v est globale , et qui est la raison pour laquelle vous pouvez assigner une valeur dans la setup( ) et ensuite utiliser cette valeur dans draw() .

  • C'est bon , le programme fonctionne comme je le voulais =) voici le code que j'ai : import javax.swing.*; //importation de la bibliothèque de Java en entière

    int v;
    
    void setup() {    //Définition des caractéristiques du sketch
     size(500,500);   //Taille du sketch
     JOptionPane.showMessageDialog(null,"Utilisez les flèche directionnelles pour démarrer le jeu et vous déplacer");   //Affichage d'un messages d'instruction
     String s =(String)JOptionPane.showInputDialog(null,"choisissez une vitesse entre 1 et 3","Dialog",JOptionPane.PLAIN_MESSAGE);   //Affichage d'un mesage demandant une réponse
     v= Integer.parseInt(s);
     ellipse(x,y,50,25);   //Création de l'éllipse
    }
    
    float x=50, y=50;   //Position initiale de l'ellipse
    
    void draw(){ 
     if(v==1){   //Condition de la vitesse niveau 1
      background(255,190,100);   //Fond caractéristique de la vitesse 1
          if(keyCode==UP){   //Effet de l'utilisation de la touche UP
            x += 0;   //Coordonnée en x
            y += -2;   //Cordonnée en y
            ellipse(x,y,25,50);   //Tracé de l'ellipse pour l'utilisation de la touche UP
          }
          if(keyCode==DOWN){   //Effet de l'utilisation de la touche DOWN
            x += 0;   //Coordonnée en x
            y += +2;   //coordonnée en y
            ellipse(x,y,25,50);   //Tracé de l'ellipse pour l'utilisation de la touche DOWN
          }
          if(keyCode==LEFT){   //Effet de l'utilisation de la touche LEFT
            x += -2;   //Coordonnée en x 
            y += 0;   //Coordonnée en y
            ellipse(x,y,50,25);   //Tracé de l'éélipse pour l'utilisation de la touche LEFT
          }
          if(keyCode==RIGHT){   //Effet de l'utilisation de la touche RIGHT
            x += +2;   //Coordonnée en x
            y += 0;   //Coordonnée en y
            ellipse(x,y,50,25);   //Tracé de l'ellipse pour l'utilisation de la touche RIGHT
          }
          if(x<50){
            x = 50;
          }
          if(x>450){
            x = 450;
          }
          if(y<50){
            y = 50;
          }
          if(y>450){
            y = 450;
          }
    }
    
    if(v==2){   //Condition de la vitesse niveau 2
        background(255,30,180);    
          if(keyCode==UP){
            x += 0;  
            y += -5;
            ellipse(x,y,25,50);
          }
          if(keyCode==DOWN){
            x += 0;
            y += +5;
            ellipse(x,y,25,50);
          }
          if(keyCode==LEFT){
            x += -5;
            y += 0;
            ellipse(x,y,50,25);
          }
          if(keyCode==RIGHT){
            x += +5;
            y += 0;
            ellipse(x,y,50,25);
          }
          if(x<50){
            x = 50;
          }
          if(x>450){
            x = 450;
          }
          if(y<50){
            y = 50;
          }
          if(y>450){
            y = 450;
          }
    }
    
    if(v==3){   //Condition de la vitesse niveu 3
        background(255,190,200);    
          if(keyCode==UP){
            x += 0;  
            y += -8;
            ellipse(x,y,25,50);
          }
          if(keyCode==DOWN){
            x += 0;
            y += +8;
            ellipse(x,y,25,50);
          }
          if(keyCode==LEFT){
            x += -8;
            y += 0;
            ellipse(x,y,50,25);
          }
          if(keyCode==RIGHT){
            x += +8;
            y += 0;
            ellipse(x,y,50,25);
          }
          if(x<50){
            x = 50;
          }
          if(x>450){
            x = 450;
          }
          if(y<50){
            y = 50;
          }
          if(y>450){
            y = 450;
          }
    }
    
    }
    

    Encore merci =)

Sign In or Register to comment.