如何创建使对象移动的方法

时间:2017-10-22 17:27:43

标签: processing

我正在尝试在Processing中创建一个在屏幕上移动球的方法。然而,当我按下按键时球不会移动,但理论上它应该。我做错了什么?

float x = 100;
float y = 100;
void setup() {
  size(400, 400);
}
void draw() {
  fill(0);
  ellipse(x, y, 10, 10);
  move();
}
void reset() {
  x = height/2;
  y = width/2;
}
void move() {
  if (keyPressed == true) {
    if (key == 'a') {
      x = x - 3;
    } else if (key == 's') {
      y = y + 3;
    } else if (key == 'd') {
      x = x + 3;
    } else if (key == 'w') {
      y = y + 3;
    } else if (key == ' ') {
      reset();
    }
  }
}

1 个答案:

答案 0 :(得分:1)

当我运行你的代码时,我确实看到了圆圈移动。你刚刚遇到两个问题:

首先,你没有清除旧的框架,所以你不仅仅看到一个球,而是在所有球的先前位置看到了一条小道。要解决此问题,您可以每帧调用background()函数。

其次,当用户同时按下ws键时,您正在做同样的事情。所以球在两种情况下都会下降。您可以通过更改w案例中的逻辑来解决此问题。