0

問題: 基本的な WASD キーを使用して、船のスプライトを画面上で動かしたいと考えています。これはできましたが、問題は、2 つのキー (たとえば、W と D) を押したときに、期待どおりに船が斜めに動かないことです。代わりに、最近打たれたキーに従って移動します。

1 つのキーを押し続けると、押している間だけ動きます。2 (および複数) の設定は何ですか?

私のコード(ブルーシップは、一目瞭然のメソッドが示されているクラスです):

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 に答える