我正在尝试在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();
}
}
}
答案 0 :(得分:1)
当我运行你的代码时,我确实看到了圆圈移动。你刚刚遇到两个问题:
首先,你没有清除旧的框架,所以你不仅仅看到一个球,而是在所有球的先前位置看到了一条小道。要解决此问题,您可以每帧调用background()
函数。
其次,当用户同时按下w
和s
键时,您正在做同样的事情。所以球在两种情况下都会下降。您可以通过更改w
案例中的逻辑来解决此问题。