如何使屏幕出现且 mousePressed 停留在屏幕上?
How to make the screen appear with mousePressed stay on the screen?
当我点击屏幕时,停止屏幕闪烁,然后又回到行走屏幕。如何让它一直停留在“停止”屏幕上,直到我再次单击鼠标?
boolean walk;
String textStop;
String textWalk;
float x; //positions
float y; //positions
void setup() {
size (400,500);
stop = false;
textStop = "STOP!";
textWalk = "WALK!";
}
void draw() {
background(0,255,0);
text(textWalk, x , y);
x = 150;
y = 250;
textSize(40);
}
void mousePressed() {
if (stop);{
background(255,0,0);
text(textStop, x , y);
}
} ```
每当您调用 background()
时,您都在清除屏幕。
因为这发生在 draw()
中,每一帧都被清除并使用 textWalk
(和 textStop
)重新绘制)仅在您单击时显示(在 [=17 的短暂持续时间内) =] 事件).
您可以为此使用 walk
变量。我看到你使用 stop
虽然它没有声明。它们在上下文中似乎彼此相反,所以为什么不简化并只使用一个。当然,您可以编写此 if/else
来切换值,或者您可以简单地使用 !(logical not) operator:
void mousePressed() {
walk = !walk;
}
- 当
walk
是 true
时渲染 textWalk
- 否则 (
else
) 渲染 textStop
类似于:
if(walk){
text(textWalk, x , y);
}else{
text(textStop, x , y);
}
这是使用上述注释修改后的代码版本:
boolean walk = true;
String textStop = "STOP!";
String textWalk = "WALK!";
float x = 150; //positions
float y = 250; //positions
void setup() {
size (400,500);
textSize(40);
}
void draw() {
if(walk){
background(0,255,0);
text(textWalk, x , y);
}else{
background(255,0,0);
text(textStop, x , y);
}
}
void mousePressed() {
walk = !walk;
}
(注意我已经移动了几行:一般来说,初始化那些在程序开始时不会改变的值而不是连续改变是个好主意。在这个基本示例中它并没有真正影响性能,但对于更复杂的程序,最好跟踪哪些更改和哪些未更改。
此外,将来可能会对其他程序有所帮助,以便在事件发生变化的数据(例如 walk
按下鼠标时)和数据的呈现方式(例如使用 walk
在 draw()
)
中呈现
当我点击屏幕时,停止屏幕闪烁,然后又回到行走屏幕。如何让它一直停留在“停止”屏幕上,直到我再次单击鼠标?
boolean walk;
String textStop;
String textWalk;
float x; //positions
float y; //positions
void setup() {
size (400,500);
stop = false;
textStop = "STOP!";
textWalk = "WALK!";
}
void draw() {
background(0,255,0);
text(textWalk, x , y);
x = 150;
y = 250;
textSize(40);
}
void mousePressed() {
if (stop);{
background(255,0,0);
text(textStop, x , y);
}
} ```
每当您调用 background()
时,您都在清除屏幕。
因为这发生在 draw()
中,每一帧都被清除并使用 textWalk
(和 textStop
)重新绘制)仅在您单击时显示(在 [=17 的短暂持续时间内) =] 事件).
您可以为此使用 walk
变量。我看到你使用 stop
虽然它没有声明。它们在上下文中似乎彼此相反,所以为什么不简化并只使用一个。当然,您可以编写此 if/else
来切换值,或者您可以简单地使用 !(logical not) operator:
void mousePressed() {
walk = !walk;
}
- 当
walk
是true
时渲染textWalk
- 否则 (
else
) 渲染textStop
类似于:
if(walk){
text(textWalk, x , y);
}else{
text(textStop, x , y);
}
这是使用上述注释修改后的代码版本:
boolean walk = true;
String textStop = "STOP!";
String textWalk = "WALK!";
float x = 150; //positions
float y = 250; //positions
void setup() {
size (400,500);
textSize(40);
}
void draw() {
if(walk){
background(0,255,0);
text(textWalk, x , y);
}else{
background(255,0,0);
text(textStop, x , y);
}
}
void mousePressed() {
walk = !walk;
}
(注意我已经移动了几行:一般来说,初始化那些在程序开始时不会改变的值而不是连续改变是个好主意。在这个基本示例中它并没有真正影响性能,但对于更复杂的程序,最好跟踪哪些更改和哪些未更改。
此外,将来可能会对其他程序有所帮助,以便在事件发生变化的数据(例如 walk
按下鼠标时)和数据的呈现方式(例如使用 walk
在 draw()
)