2017-02-07 19 views
0

これはトグルで動作する画像生成プログラムです。私は、新しいウィンドウにトグルボタンを持っていたいと思います。私はPAppletを使ってみましたが、何も表示していないようです。トグルのためだけに余分なウィンドウを追加するには?トグル処理用の新しいウィンドウを作成する(ControlP5)

import controlP5.*; 

PFont myFont; 

boolean showBackground = false; 
boolean showObjects = false; 
boolean showGrids = false; 
boolean showType = false; 

ControlP5 cp5; 

PImage[] objects = new PImage[30]; 
PImage[] grids = new PImage[29]; 
PImage[] backgrounds = new PImage[30]; 
PImage[] type = new PImage[30]; 

int currentBackgrounds; 
int currentGrids; 
int currentObjects; 
int currentType; 


void setup() { 
    size(1436, 847); 

    //load objects 
    for (int i=0; i<objects.length; i++) { 
    objects[i] = loadImage ("o" + i + ".png"); 
    } 
    //load grids 
    for (int i = 0; i < grids.length; i++) { 
    grids[i] = loadImage ("g" + i + ".png"); 
    } 
    //load backgrounds 
    for (int i = 0; i < backgrounds.length; i++) { 
    backgrounds[i] = loadImage("b" + i + ".jpg"); 
    } 
    //load type 
    for (int i = 0; i < type.length; i++) { 
    type[i] = loadImage ("t" + i + ".png"); 
    } 
    //setup UI 
String[] args = {"TwoFrameTest"}; 
SecondApplet sa = new SecondApplet(); 
PApplet.runSketch(args, sa); 

} 
public class SecondApplet extends PApplet { 

public void settings() { 
    size(200, 100); 
    } 
    // create a toggle and change the default look to a switch look 
    public void draw() { 
    cp5 = new ControlP5(this); 

    PFont font = createFont("EurostileLTStd-BoldEx2.otf", 10); 


    cp5.addToggle("showBackground") 
    .setColorForeground(color(255, 255, 255)) 
    .setColorBackground(color(255, 255, 255)) 
    .setColorActive(color(255, 0, 0)) 
    .setPosition(40, 250) 
    .setFont(font) 
    .setSize(20, 20) 
    .setValue(false) 
    .setMode(ControlP5.SWITCH); 

    cp5.addToggle("showObjects") 
    .setPosition(40, 400) 
    .setFont(font) 
    .setSize(50, 20) 
    .setValue(false) 
    .setMode(ControlP5.SWITCH); 

    cp5.addToggle("showGrids") 
    .setPosition(40, 600) 
    .setFont(font) 
    .setSize(50, 20) 
    .setValue(false) 
    .setMode(ControlP5.SWITCH); 

    cp5.addToggle("showType") 
    .setPosition(40, 800) 
    .setFont(font) 
    .setSize(50, 20) 
    .setValue(false) 
    .setMode(ControlP5.SWITCH); 
    } 
} 

void mousePressed() { 
    //next img 
    currentObjects = currentObjects + int(random(10)); 
    currentGrids = currentGrids + int(random(10)); 
    currentType = currentType + int(random(10)); 
    currentBackgrounds = currentBackgrounds + int(random(10)); 

    if (currentObjects >= objects.length) { 
    currentObjects = 0; 
    } 
    if (currentGrids >= grids.length) { 
    currentGrids = 0; 
    } 
    if (currentType >= type.length) { 
    currentType = 0; 
    } 
    if (currentBackgrounds >= backgrounds.length) { 
    currentBackgrounds = 0; 

    } 
} 

void draw() { 
    //clear frame 
    background(211);// 

    if (showBackground==true) { 
    image(backgrounds[currentBackgrounds], 0, 0, 1436, 847); // b 
    } 
    if (showGrids==true) { 
    image(grids[currentGrids], 0, 0, 1436, 847); // g 
    } 
    if (showObjects==true) { 
    image(objects[currentObjects], 0, 0, 1436, 847); // o 
    } 
    if (showType==true) { 
    image(type[currentType], 0, 0, 1436, 847); // o 
    } 
} 
+0

処理中チェックアウト**ファイル>例>寄稿ライブラリ> ControlP5>追加> ControlP5frame **のようなものです。この例では、 'runSketch' Kevinが参照されていますが、' '' 'PlugTo()' ''が '' ControlFrame''アプレットのコントロールを最初のアプレットのプロパティにどのように接続するのかを見ることができます。 –

+0

これは分かったのですか? –

+0

いいえ、それを理解したことはありません。 –

答えて

0

あなたがポップアップし、独自の加工スケッチする2番目のウィンドウのためのrunSketch()関数を呼び出す必要があるとしています。

void setup() { 
    String[] args = {"TwoFrameTest"}; 
    SecondApplet sa = new SecondApplet(); 
    PApplet.runSketch(args, sa); 
} 

void settings() { 
    size(300, 100); 
} 

void draw() { 
    background(0); 
    fill(255); 
    text("Hello world!", 50, 40); 
} 


public class SecondApplet extends PApplet { 

    public void settings() { 
    size(200, 200); 
    } 

    public void draw() { 
    background(255); 
    fill(0); 
    text("Hello world!", 50, 40); 
    } 
} 
+0

しかし、トグルは他のファイルと正しく連結されていませんか? –

+0

@NaomivanMaasakkers No、ControlP5の** plugTo **機能を使用していない場合 –

+0

@NaomivanMaasakkers 'SecondApplet'インスタンス(私のコードでは' sa'変数)を 'ControlP5'コンストラクタに渡すか、' ControlP5 'SecondApplet'クラスのものです。 –

関連する問題