为什么在Processing中使用ControlP5单击按钮后我的可视化消失了?

时间:2017-06-20 15:34:51

标签: java processing

我正在使用Processing处理应用程序。我想用Control P5创建两个按钮。按下按键后,我想显示一些内容。然而,它立即消失,我不知道为什么。

设置()

import controlP5.*;

ControlP5 cp5;
controlP5.Button b;

void setup() {
    size(1080,720);
    background(210,210,210);
    cp5 = new ControlP5(this);

    b = cp5.addButton("A")
        .setPosition(100,140)
        .setSize(200,19);


    b = cp5.addButton("B")
       .setPosition(100,180)
       .setSize(200,19);
}

拉伸()

void draw() {
    background(0);
}

按钮功能()

public void A() {
    println("This is a");
    text("word", 100, 100);
}

public void B() {
    println("This is b");    
}

我想知道,我将如何完成某种情况 - 我可以点击按钮A,显示可视化效果。当我点击按钮B时,会出现一个新的可视化,并将其隐藏在按钮A中。

因为现在,当我点击按钮A时,'word'显示一秒钟并立即消失。

1 个答案:

答案 0 :(得分:4)

这是因为A()只在按下按钮时被调用一次,这与重复调用的draw()不同,因此您只能看到text()的单个帧。有一种方法可以解决这个问题,基本上你想在draw()中绘制所有内容,只需选择绘制内容和绘制时间。您可以使用布尔标志执行此操作:

boolean drawText = false;

void draw() {
  background(0);
  if (drawText)
    text("word", 100, 100);
}

public void A() {
  drawText = true;
  println("This is a"); 
}

public void B() {
  drawText = false;
  println("This is b");
}