我想做的就是简单地改变我点击的像素的颜色。所以有两种状态;
鼠标点击
鼠标未点击
我正在使用下面的代码;
boolean myBol = false ;
void setup(){
size(860,640);
background(0);
}
void draw(){
if (mousePressed) {
if(myBol == true){myBol = false;} else {myBol = true;}
}
if (myBol == true){
stroke(255);
point(mouseX,mouseY);
}}
当我在第一次单击后运行这段代码时,它会一直绘制我移动鼠标的位置,但我想要的是:“每次单击屏幕时都要绘制”。
发布于 2016-11-04 04:27:22
你的支票状况不对。
if (mousePressed) {
if(myBol == true){
myBol = false;
} else {
myBol = true;
}
}
或卑劣的
if (mousePressed)
myBol = !myBol
将更改每次单击时的myBol
值。
由于您想要在单击上进行绘图,因此不需要此值。直接使用mousePressed值
if (mousePressed) {
stroke(255);
point(mouseX,mouseY);
}
发布于 2016-11-04 05:08:49
你有额外的逻辑,这是没有意义的。既然已经有了myBol
变量,为什么需要mousePressed
呢?你就不能把你的逻辑简化成这样:
void setup() {
size(860, 640);
background(0);
}
void draw() {
if (mousePressed) {
stroke(255);
point(mouseX, mouseY);
}
}
也可以使用鼠标事件函数,如下所示:
void setup() {
size(860, 640);
background(0);
}
void mousePressed() {
stroke(255);
point(mouseX, mouseY);
}
void mouseDragged() {
stroke(255);
point(mouseX, mouseY);
}
void draw() {
}
此外,boolean
值可以直接用于运算符,因此如下所示:
boolean example;
if(example == true){example= false;} else {example= true;}
可以使用而不是操作符将其缩短为这样:
boolean example;
example = !example;
这是:
if(example == true)
可缩短为:
if(example)
https://stackoverflow.com/questions/40422305
复制相似问题