首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >获取点击点在处理3上的坐标

获取点击点在处理3上的坐标
EN

Stack Overflow用户
提问于 2016-11-04 12:08:00
回答 2查看 648关注 0票数 0

我想做的就是简单地改变我点击的像素的颜色。所以有两种状态;

鼠标点击

鼠标未点击

我正在使用下面的代码;

代码语言:javascript
代码运行次数:0
运行
复制
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);
}}

当我在第一次单击后运行这段代码时,它会一直绘制我移动鼠标的位置,但我想要的是:“每次单击屏幕时都要绘制”。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-04 12:27:22

你的支票状况不对。

代码语言:javascript
代码运行次数:0
运行
复制
if (mousePressed) {
   if(myBol == true){
       myBol = false;
   } else {
       myBol = true;
   }
} 

或卑劣的

代码语言:javascript
代码运行次数:0
运行
复制
if (mousePressed)
    myBol = !myBol

将更改每次单击时的myBol值。

由于您想要在单击上进行绘图,因此不需要此值。直接使用mousePressed值

代码语言:javascript
代码运行次数:0
运行
复制
if (mousePressed) {
    stroke(255);
    point(mouseX,mouseY);
}
票数 1
EN

Stack Overflow用户

发布于 2016-11-04 13:08:49

你有额外的逻辑,这是没有意义的。既然已经有了myBol变量,为什么需要mousePressed呢?你就不能把你的逻辑简化成这样:

代码语言:javascript
代码运行次数:0
运行
复制
void setup() {
  size(860, 640);
  background(0);
}

void draw() {
  if (mousePressed) {
    stroke(255);
    point(mouseX, mouseY);
  }
}

也可以使用鼠标事件函数,如下所示:

代码语言:javascript
代码运行次数:0
运行
复制
void setup() {
  size(860, 640);
  background(0);
}

void mousePressed() {
  stroke(255);
  point(mouseX, mouseY);
}

void mouseDragged() {
  stroke(255);
  point(mouseX, mouseY);
}

void draw() {
}

此外,boolean值可以直接用于运算符,因此如下所示:

代码语言:javascript
代码运行次数:0
运行
复制
boolean example;
if(example == true){example= false;} else {example= true;}

可以使用而不是操作符将其缩短为这样:

代码语言:javascript
代码运行次数:0
运行
复制
boolean example;
example = !example;

这是:

代码语言:javascript
代码运行次数:0
运行
复制
if(example == true)

可缩短为:

代码语言:javascript
代码运行次数:0
运行
复制
if(example)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40422305

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档