0

问题:我想用基本的 WASD 键让我的船精灵在屏幕上移动。我已经完成了这个,但问题是当我按下两个键(例如 W 和 D)时,船并没有像我预期的那样以对角线方式移动。相反,它会根据最近按下的键移动。

只要我按住一把钥匙,它就会移动。2(和多个)的设置是什么?

我的代码(blueship 是一个带有不言自明方法的类):

void testApp::keyPressed(int key)
{
    if (key == 'w')
    {
        blueship.move_up();
    }
    if (key == 's')
    {
        blueship.move_down();
    }
    if (key == 'a')
    {
        blueship.move_left();
    }
    if (key == 'd')
    {
        blueship.move_right();
    }
}

提前致谢。

4

1 回答 1

1

keyReleased 事件?

key W is pressed -> move up
key W is release -> stop moving
key A is pressed -> move left
key S is pressed -> move left + move down (key A is not released,yet)
于 2012-08-02T06:48:39.983 回答