質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
GLFW

GLFWは、OpenGLを使用してアプリ開発を行うためのフレームワークです。Macにも対応しているマルチプラットフォームであることが特徴。ウィンドウ管理、解像度切り替え、入力管理などの機能を持ちます。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

1回答

432閲覧

GLFW3のキー入力を一定時間受け付けなくする方法。

退会済みユーザー

退会済みユーザー

総合スコア0

GLFW

GLFWは、OpenGLを使用してアプリ開発を行うためのフレームワークです。Macにも対応しているマルチプラットフォームであることが特徴。ウィンドウ管理、解像度切り替え、入力管理などの機能を持ちます。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2018/06/20 05:30

前提・実現したいこと

GLFW3のキー入力を一定時間受け付けなくする方法を知りたいです。
普通にキー入力をすると、キーボードを一度押しただけでも、その間に複数回キー入力を受け付けてしまい、
それをキーボードを一度押した時に、一度だけ入力できるようにしたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

「一定時間受け付けなく...」というよりも、「キーボードを一度押した時に、一度だけ...」という動作をさせたいということでしょうか?
glfwGetKeyによるキー状態監視を行っているのでしたら、取得した状態を適当な変数に保管しておいて、次回のキー状態取得の際にそれを新たに取得したキー状態と比較すれば、「離している→押している」または「押している→離している」の変化を検出できるのではないでしょうか。

C++

1int main() 2{ 3 // 省略 4 5 int keyStateSpace = GLFW_RELEASE; // スペースキー状態保管用変数 6 7 while (!glfwWindowShouldClose(window)) { 8 glfwPollEvents(); 9 10 int currentKeyStateSpace = glfwGetKey(window, GLFW_KEY_SPACE); // 現在のスペースキー状態 11 12 if (currentKeyStateSpace != keyStateSpace) { 13 if (currentKeyStateSpace == GLFW_PRESS) { 14 // GLFW_PRESS以外からGLFW_PRESSに変わった...キーが押された 15 printf("Release -> Press\n"); 16 } else if (currentKeyStateSpace == GLFW_RELEASE) { 17 // GLFW_RELEASE以外からGLFW_RELEASEに変わった...キーが離された 18 printf("Press -> Release\n"); 19 } 20 21 keyStateSpace = currentKeyStateSpace; // 現在の状態をkeyStateSpaceに保管 22 } 23 24 glfwSwapBuffers(window); 25 } 26 27 // 省略 28}

投稿2018/06/20 21:07

Bongo

総合スコア10807

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問