【发布时间】:2015-02-21 15:23:01
【问题描述】:
我有以下代码(我没有在这里编写设置和绘图),我想在处理中移动一个矩形。如果我按“a”则向左,如果按“d”则向右。 使用此代码我会这样做,但如果 moveTo 是一个小数字,则矩形移动太慢,如果 moveTo 是一个大数字,则矩形移动不平稳。不是流体... 如何制作这个动画?
int moveTo = 5;
void keyPressed()
{
if (key == 'a')
{
xTopRect = xTopRect - moveTo;
xBottomRect = xBottomRect - moveTo;
xFstPointTriangle = xFstPointTriangle - moveTo;
xSndPointTriangle = xSndPointTriangle - moveTo;
xTrdPointTriangle = xTrdPointTriangle - moveTo;
}
else if (key == 'd')
{
xTopRect = xTopRect + moveTo;
xBottomRect = xBottomRect + moveTo;
xFstPointTriangle = xFstPointTriangle + moveTo;
xSndPointTriangle = xSndPointTriangle + moveTo;
xTrdPointTriangle = xTrdPointTriangle + moveTo;
}
}
我找到了这个解决方案并且它有效(不要看变量) 我在 draw() 中调用 move()
void move()
{
if (keyPressed) {
if (key == 'a') {
x = x - speed;
} else if (key == 'd') {
x = x + speed;
}
}
}
【问题讨论】:
-
左右移动意味着你只需要将右上角移动到一个新的位置。
-
更频繁地轮询密钥。
-
我找到了这个解决方案,而且它有效!! void move() { if (keyPressed) { if (key == 'a') { x = x - speed; } else if (key == 'd') { x = x + speed; } } }
标签: java animation processing