回答編集履歴
3
動きそうなコードを追加
answer
CHANGED
@@ -45,4 +45,32 @@
|
|
45
45
|
追記
|
46
46
|
とりあえず問題点だけ列挙します。
|
47
47
|
・「printf("%s\n", chr.data()」の「chr.data()」がヌル文字による終端が行われていない。
|
48
|
-
・他のキー入力が行われるまで、最後のキー入力が保持され続ける。
|
48
|
+
・他のキー入力が行われるまで、最後のキー入力が保持され続ける。
|
49
|
+
|
50
|
+
```cpp
|
51
|
+
void FrameWork::Window::ClearInputKeyBoard()
|
52
|
+
{
|
53
|
+
// キー入力状態クリア処理を追加
|
54
|
+
this->inputKey = 0;
|
55
|
+
}
|
56
|
+
|
57
|
+
void Title::Update()
|
58
|
+
{
|
59
|
+
if (windowContext->InputKeyBoard() != 0)
|
60
|
+
{
|
61
|
+
chr.push_back((char)windowContext->InputKeyBoard());
|
62
|
+
|
63
|
+
// キー入力状態をクリア
|
64
|
+
windowContext->ClearInputKeyBoard();
|
65
|
+
|
66
|
+
// 出力用に終端文字を追加
|
67
|
+
chr.push_back('\0');
|
68
|
+
|
69
|
+
printf("%s\n", chr.data());
|
70
|
+
|
71
|
+
// 出力用に追加した、終端文字を削除
|
72
|
+
chr.pop_back();
|
73
|
+
}
|
74
|
+
}
|
75
|
+
|
76
|
+
```
|
2
問題点など追記
answer
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
公式リファレンスにある通りですが、「glfwSetCharCallback()」で扱うのはUnicodeのコードポイントです。
|
2
2
|
少なくとも、unsigned int型をchar型にキャストして扱えるものじゃないでしょう。
|
3
|
+
(ASCIIの範囲であれば問題ありませんが)
|
3
4
|
|
4
5
|
[OpenGL_FrameWork/OpenGL_FrameWork/Window.cpp](https://github.com/Shigurechan/OpenGL_FrameWork/blob/8e9d4237764b68d03d35f7c65b31889864f4a723/OpenGL_FrameWork/Window.cpp)
|
5
6
|
|
@@ -38,4 +39,10 @@
|
|
38
39
|
|
39
40
|
|
40
41
|
|
41
|
-
```
|
42
|
+
```
|
43
|
+
|
44
|
+
|
45
|
+
追記
|
46
|
+
とりあえず問題点だけ列挙します。
|
47
|
+
・「printf("%s\n", chr.data()」の「chr.data()」がヌル文字による終端が行われていない。
|
48
|
+
・他のキー入力が行われるまで、最後のキー入力が保持され続ける。
|
1
不足文言修正
answer
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
公式リファレンスにある通りですが、「glfwSetCharCallback()」で扱うのはUnicodeです。
|
1
|
+
公式リファレンスにある通りですが、「glfwSetCharCallback()」で扱うのはUnicodeのコードポイントです。
|
2
2
|
少なくとも、unsigned int型をchar型にキャストして扱えるものじゃないでしょう。
|
3
3
|
|
4
4
|
[OpenGL_FrameWork/OpenGL_FrameWork/Window.cpp](https://github.com/Shigurechan/OpenGL_FrameWork/blob/8e9d4237764b68d03d35f7c65b31889864f4a723/OpenGL_FrameWork/Window.cpp)
|