私はいくつかのグラフィックスで遊んでいますが、矢印キーで簡単なカメラの動きを実装しました。Qtでキーが押されていないか確認してください
switch(key)
{
case up: MoveCameraForward(step); break;
case left: MoveCameraLeft(step); break;
...
}
私はそれがほしいので、これは動作しません:私の最初のアプローチは、このような何かをkeyPressEvent
を上書きすることでした。たとえば、前方キーなどを押し続けると、カメラは前方に「ステップ」単位を移動し、しばらく停止してから移動を続けます。私はこれがイベントが生成される方法であると推測しています。これは少し長いキー操作の場合に複数のイベントを回避するためです。
したがって、Paint()
ルーチンでキーボードをポーリングする必要があります。私はQtでそれを行う方法を見つけていません。私はmap<Key, bool>
を持っていると思って、keyPressEvent
とkeyReleaseEvent
に更新され、そのマップをPaint()
に投票しました。どんな良いアイデアですか?どんな洞察にも感謝します。
ユーザーがキーボードの繰り返しレートを設定できるので、これは特に推奨されます。これは内部のティックレートから独立していることを保証する唯一の方法です。 – RedX
qtフォーラムにスレッドとその例があります:http://qt-project.org/forums/viewreply/135346/ – bobbaluba