我正在使用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'显示一秒钟并立即消失。
答案 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");
}