質問編集履歴
1
文章を修正しました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,22 +1,54 @@
|
|
1
|
-
提示コードですがchrはVectorのchar型変数です。
|
1
|
+
提示コードですがchrはVectorのchar型変数です。getInputChar()関数は押されたキーの値を返す関数でキーを離しても最後のキーが押された値が返ってきます。
|
2
2
|
|
3
3
|
質問内容 「 テキスト入力を行うにはどうすればいいのでしょうか?参考サイトを調べましたが三つの入力関数のうちどれを使ってもテキスト入力を実現できません。 」
|
4
4
|
|
5
5
|
参考サイト: http://ggkuron.hatenablog.com/entry/2012/05/12/090
|
6
6
|
公式リファレンス: https://www.glfw.org/docs/3.3/input_guide.html
|
7
7
|
|
8
|
+
```cpp
|
9
|
+
|
10
|
+
std::vector<char> string(0);
|
11
|
+
char str[1000] = { '\0' };
|
8
12
|
|
13
|
+
while (*window)
|
14
|
+
{
|
15
|
+
window->FrameUpdate(glm::vec4(0.0f, 0.0f, 0.0f, 255.0f));
|
9
16
|
|
10
|
-
|
17
|
+
|
11
|
-
//更新
|
12
|
-
|
18
|
+
unsigned int n = window->getInputChar();
|
19
|
+
|
20
|
+
std::cout << n << std::endl;
|
21
|
+
|
22
|
+
if (n != 0)
|
13
|
-
{
|
23
|
+
{
|
14
|
-
|
24
|
+
if (string.size() > 0)
|
15
|
-
|
25
|
+
{
|
26
|
+
string.erase(string.end() - 1);
|
27
|
+
string.push_back(n);
|
16
|
-
|
28
|
+
string.push_back('\0');
|
29
|
+
|
30
|
+
}
|
31
|
+
else
|
32
|
+
{
|
33
|
+
string.push_back(n);
|
34
|
+
string.push_back('\0');
|
35
|
+
}
|
36
|
+
|
37
|
+
n = 0;
|
38
|
+
}
|
39
|
+
|
40
|
+
if (string.size() > 0)
|
41
|
+
{
|
17
|
-
|
42
|
+
strcpy_s(str, string.size(), string.data());
|
43
|
+
}
|
44
|
+
|
45
|
+
FrameWork::DrawFormatString(glm::vec2(100, 100), glm::vec4(0, 255, 0, 255), 100, "%s", str);
|
46
|
+
|
47
|
+
|
48
|
+
window->Wait();
|
49
|
+
window->SwapBuffers();
|
18
50
|
}
|
19
51
|
|
20
|
-
}
|
21
52
|
|
53
|
+
|
22
54
|
```
|