回答編集履歴

1

追記

2021/04/20 01:35

投稿

fana
fana

スコア11954

test CHANGED
@@ -5,3 +5,35 @@
5
5
  glfwSetKeyCallback で設定した callback 関数の引数にイベント情報(押した,離した,etc)が来るから,
6
6
 
7
7
  それで判定するので十分ならば,自前で押された履歴みたいなのを記憶するよりは楽かも.
8
+
9
+
10
+
11
+ ---
12
+
13
+
14
+
15
+ 編集された件について:
16
+
17
+
18
+
19
+ > なぜか1という値が数フレーム返って来てしまいます。本来押された瞬間であれば1は一回だけで後は2の値が来るはずなのですがログを見ると数フレーム来てしまっています。これは何が原因なのでしょうか?
20
+
21
+
22
+
23
+ 1を複数回表示しているのはあなたのメインループです.
24
+
25
+ callback関数の引数に1が複数回連続で来ているわけではありません.
26
+
27
+
28
+
29
+ あなたの言う「数フレーム」の間に,callback関数が何回呼ばれているのかを確認すべきです.
30
+
31
+ というか,キーを押しっぱなしにした時のcallback関数の呼ばれ具合を最初に確認すべき.
32
+
33
+ キーリピート(:テキストエディタ上でキーを押しっぱなしにしたときの入力具合)と同様の呼び出しタイミングになるはず.
34
+
35
+
36
+
37
+ キーを押した際に callback関数が呼ばれて,値が1になった後(キーを押しっぱなしにしたとして),
38
+
39
+ 次に callback関数が呼ばれて値が2になるまでの間に,「数フレーム」が経過しています.