java - 如何使屏幕出现鼠标按下停留在屏幕上?
问题描述
当我单击屏幕时,停止屏幕闪烁,然后返回到步行屏幕。如何让它一直停留在停止屏幕上,直到我再次单击鼠标?
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()
时,您都会清除屏幕。
因为这发生在每一帧都被清除并用(and )draw()
重绘时,只有在您单击时才会显示(在事件的短时间内)。textWalk
textStop
mousePressed()
您可以walk
为此使用变量。我看到你使用stop
它虽然没有声明。它们在上下文中似乎彼此相反,所以为什么不简化并只使用一个。当然,您可以编写代码if/else
来切换值,或者您可以简单地使用!(逻辑非)运算符:
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
to render in draw()
)之间进行一些分离
推荐阅读
- c# - 发布文件是否足以运行 WPF 应用程序?
- parse-server - 在 Parse SDK 中 saveEventually 有时仅在应用重新加载时保存
- node.js - 如何使用 Mongoose 从具有关系/条件的集合中查找特定文档
- r - R nrow 函数返回 NULL 或 1
- java - 单击列表视图中的另一行时更改行的值
- php - php vs MySQLi,哪个更快
- nginx - 使用 Helm 图表 nginx-ingress 和自定义 nginx 模板
- python - 将 Python 列表添加到已填充的 CSV 中间
- google-cloud-firestore - 在 Angular Firestore 查询中禁用缓存
- mysql - 基于多个 OR 谓词对结果集进行排序