我想在处理中使用keyPressed稍微移动一个椭圆,但是这样做时,它会添加另一个椭圆而不是摆脱一个椭圆

问题描述

很抱歉,如果这是一个愚蠢的问题,只是开始在处理过程中学习Java,我有些困惑。大声笑

What happens when I press any key

What happens after I release any key

boolean eyeMove = false;
boolean armMove = false;

void setup() {
  size(600,800);
  smooth();
}

void draw() {

  stroke(1);
  fill(255);
  ellipse(300,460,230,270);
  stroke(1);
  fill(188);
  ellipse(280,220,35,95);
  ellipse(320,95);
  fill(126);
  ellipse(280,20,80);
  ellipse(320,80);
  stroke(1);
  fill(255);
  ellipse(300,300,100,100);
  fill(188);
  noStroke();
  ellipse(300,130,170);
  fill(0);
  ellipse(240,580,40,40);
  ellipse(360,40);
  fill(0);
  ellipse(300,320,10);
  fill(0);
  triangle(300,330,289,344,310,344);
  fill(188);
  stroke(1);
  ellipse(280,290,20);
  ellipse(320,20);

  keyPressed();
}


void keyPressed() {
  if (!keyPressed) {
    fill(0);
    ellipse(390,350,40);
    ellipse(210,40);
  } else if (keyPressed) {
    armMove = true;
    fill(125);
    ellipse(390,40);
    ellipse(230,40);
  }


我在老鼠的眼睛上使用过mousePressed,效果很好。我只是很困惑,这现在是怎么引起问题的。

解决方法

`draw()方法不只是一个绘图循环。这是程序的主循环。这样,它不会在循环的每次迭代时都清除屏幕,而只会绘制您告诉它绘制的内容。实际上,只要在某个时候被调用,您就可以用任何方法绘制。

这里的问题是您要在前一个兔子上绘制兔子。您永远不会“擦除”先前的图形。人们通常使用background()方法来这样做。我对您的草图进行了一些修改,以向您展示我的意思:

void setup() {
  size(600,800);
  smooth();
}

void draw() {
  background(128);
  
  stroke(1);
  fill(255);
  ellipse(300,460,230,270);
  fill(188);
  ellipse(280,220,35,95);
  ellipse(320,95);
  fill(126);
  ellipse(280,20,80);
  ellipse(320,80);
  fill(255);
  ellipse(300,300,100,100);
  fill(188);
  noStroke();
  ellipse(300,130,170);  
  fill(0);
  ellipse(240,580,40,40);
  ellipse(360,40);
  ellipse(300,320,10);
  triangle(300,330,289,344,310,344);
  fill(188);
  stroke(1);
  ellipse(280,290,20);
  ellipse(320,20);

  if (keyPressed) {
    ellipse(390,350,40);
    ellipse(230,40);
  } else {
    ellipse(390,40);
    ellipse(210,40);    
  }
}

如果您有后续问题,我会在附近。玩得开心!

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...