如何使这个布尔值正确?

时间:2018-12-28 13:51:52

标签: processing

if(mouseX<200 && mouseY<200 && key=='x'){
x1=true;
image(X,0,0);
key='a';}

if语句中发生的所有其他操作,均绘制图像并将键设置为“ a”,但布尔值x1仍然为false。有谁知道我该怎么解决?

1 个答案:

答案 0 :(得分:0)

您的条件指出,不仅鼠标在X和Y坐标上的距离应小于200,而且还需要按住x键才能使此条件成立;

如果您希望x1为真,直到您更改/清除它,一个选择是将条件与绘制循环分离,并使用类似keyPressed()事件的方法:

boolean x1;
PImage X;

void setup() {
  size(400, 400);
  // placeholder
  X = createImage(90, 90, RGB);
}
void draw() {
  background(255);

  if (mouseX<200 && mouseY<200 && x1) {
    image(X, 0, 0);
  }

}

void keyPressed() {
  if (key == 'x'){
    x1 = true;
  }
  if (key == ' '){
    x1 = false;
  }
}

如果X和Y上的鼠标位置小于200,并且按下x,将渲染图像。如果在渲染图像时按下SPACE键,则图像将消失,因为x1不再是true