Annonce

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


#1 2014-05-02 10:51:05 Changer entierement la fenêtre

Miaou
membre
Date d'inscription: 2014-04-20
Messages: 30

Changer entierement la fenêtre



Salut! Je souhaiterais lorsque je clique sur le bouton option, de faire apparaître le menu option. Cependant, j'ai lu que ce n'était pas possible avec processing sur le forum de processing alors que d'autres font avec des Frames, ou Applet (pourriez-vous me dire la différence?).

le "main avec le new Frame"

import controlP5.*;
import java.awt.Frame;


ControlP5 cp5, controlP5;
//Button b3;
int myColor = color(250), c1,c2;
float n,n1, depth = 400;
boolean menu=true;
//menu couleur = new menu();


void setup(){
 size(800, 660, P3D);
 noStroke();
 smooth();


  boutton1();

  if(option==true){
    myController();
  }
 /* if(multijoueur==true){
    boutton2();
    tableau.fond();
    } */
}
void draw(){

  if(menu==true){
  nebula();
  }
  
 if(option==true){
   menu=false;
  // myControllerdraw();
   }
   
  /*if(multijoueur==true){
    menu=false;
    tableau.tableau();
    tableau.mouseReleased();
     
      if(etat==true){
        horloge();
        redraw();
        }
      if (etat) {
       compteur();
       redraw();
       }
  }*/ 
    
    
}
  
  public class Options extends Frame {

     public Options() {
         super("Embedded PApplet");
          
         setLayout(new BorderLayout());
         PApplet embed = new Embedded();
         add(embed, BorderLayout.CENTER);

         // important to call this whenever embedding a PApplet.
         // It ensures that the animation thread is started and
         // that other internal variables are properly set.
         embed.init();
     }
 }

 public class Embedded extends PApplet {

     public void setup() {
         // original setup code here ...
         size(400, 300);
         MyController = new ControlP5(this);

MyController.addSlider("R",0,255,128,20,100,10,100);
MyController.controller("R").setColorForeground(#FC0000);
MyController.addSlider("G",0,255,128,70,100,10,100);
MyController.controller("G").setColorForeground(#0BFC00);
MyController.addSlider("B",0,255,128,120,100,10,100);
MyController.controller("B").setColorForeground(#002CFC);
MyController.addButton("On_Of",10,20,60,80,20);
MyController.setAutoDraw(false);


         // prevent thread from starving everything else
         noLoop();
     }

     public void draw() {
        if( ON_OF == 1){
strokeWeight(0);
}

else{
strokeWeight(1);}

background(R,G,B);
noFill();

stroke(R);
pushMatrix();
translate(300,200,40);
sphere(50);
popMatrix();

gui();

MyController.controller("On_Of").setColorBackground(CL);
 redraw();
}

 public void mousePressed() {
         // do something based on mouse movement
               if(option==true){
                 option =new PFrame();
               }
         // update the screen (run draw once)
         redraw();
     }
     void gui() {

camera();
MyController.draw();

}

public void On_Of(){
if(ON_OF == 0){
ON_OF = 1;
CL = #FF0022;
}

else{
ON_OF = 0;
CL = #00FF1B;
}
     }
   
 }

le "menu"

et le fond du menu qui est en 3D

void nebula(){
   //background(15, 15, 15);

 pushMatrix();
 background(200);
/* background(myColor);
  myColor = lerpColor(c1,c2,n);
  n += (1-n)* 0.1;  */
 
  float cameraY = height/1;
  float cameraX = width/1;
  
 translate(width/2, height/2, -depth/2);
  
 rotateY(frameCount*PI/500);
  
 float fov = cameraX/float(width) * PI/2;
 float cameraZ = cameraY / tan(fov / 2.0);
 float aspect = float(width)/float(height);
  
 perspective(fov, aspect, cameraZ/2000.0, cameraZ*4000.0);
  
 
 translate(width/10, height/10, depth/2);
  
 for(int i=0; i<2; i++) {
 float r = random(100);
 directionalLight(2, 83, 115, // Color
 1, 10, 0); // The x-, y-, z-axis direction'
 directionalLight(3, 115, 140, // Color
 10, 10, 0); // The x-, y-, z-axis direction'
 }
 
 
 for(int i=0; i<10; i++) {
  
   float r = random(20);
  
 rotateX(frameCount*PI/1000);
  
 //alt effect
 //rotateY(frameCount*PI/1000);
  
  
 for (int y = -2; y < 2; y++) {
 for (int x = -2; x < 2; x++) {
 for (int z = -2; z < 2; z++) {
 
 pushMatrix();
 translate(400*x, 300*y, 300*z);
 box(5, 5, 100);
 popMatrix();
  
 pushMatrix();
 translate(400*x, 300*y, 50*z);
 box(100, 5, 5);
 popMatrix();
  
 pushMatrix();
 translate(400*x, 10*y, 50*z);
 box(50, 5, 5);
 popMatrix();
 
 pushMatrix();
 rotateY(frameCount*PI/400);
 translate(100*x, 300*y, 300*z);
 box(60, 40, 20);
 popMatrix();
  
      }
     }
    }
   }
   popMatrix();
   translate(0,0,200);
 cp5.draw();
}



// function colorA will receive changes from 
// controller with name colorA
public void colorA(int theValue) {
  println("a button event from colorA: "+theValue);
  
  c2 = color(90,10,2);
}

// function colorB will receive changes from 
// controller with name colorB
public void colorB(int theValue) {
  println("a button event from colorB: "+theValue);
  c1 = c2;
  c2 = color(150,150,0);
}

// function colorC will receive changes from 
// controller with name colorC
public void colorC(int theValue) {
  println("a button event from colorC: "+theValue);
  c1 = c2;
  c2 = color(255,255,0);
}

public void play(int theValue) {
  println("a button event from buttonB: "+theValue);
  c1 = c2;
  c2 = color(0,0,0);
}

Je voudrais vraiment comprendre ce principe car j'aurais à faire la même chose pour 2 autres boutons. Cela m'aiderait beaucoup et étant débutant, je n'ai pas beaucoup de connaissances sur ce sujet.

Merci!

Hors ligne

 

#2 2014-05-03 16:20:42 Re : Changer entierement la fenêtre

imdidi
membre
Date d'inscription: 2012-10-05
Messages: 242

Re: Changer entierement la fenêtre



Salut
je sais pas si sa peux taider mais jai moi meme ete rebuter a ce probleme pour contrer ce probleme jai moi meme faite une fenetre qui apparais au moment de cliquer sur menu
tu fais un rectangle de la grosseur de la  fenetre que tu veux et tu place tes bouton ou tu veux et tu fais un bouton pour fermer ta fenetre je sais pas si il y a une facon plus facile de le faire mais je lai faite comme sa et sa fonctionne tres bien

Hors ligne

 

#3 2014-05-03 17:26:08 Re : Changer entierement la fenêtre

Miaou
membre
Date d'inscription: 2014-04-20
Messages: 30

Re: Changer entierement la fenêtre



Pas  bête, merci du conseil. Je vais l'essayer!

Hors ligne

 

#4 2014-05-04 10:48:11 Re : Changer entierement la fenêtre

Miaou
membre
Date d'inscription: 2014-04-20
Messages: 30

Re: Changer entierement la fenêtre



Mais alors comment je dois faire pour enlever des boutons de ControlP5 et en remettre d'autres?

Hors ligne

 

#5 2014-05-05 22:53:22 Re : Changer entierement la fenêtre

imdidi
membre
Date d'inscription: 2012-10-05
Messages: 242

Re: Changer entierement la fenêtre



perso j'en ai aucune idée moi je me fesais mes propre bouton

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2024