teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

追記

2020/02/29 04:01

投稿

episteme
episteme

スコア16612

answer CHANGED
@@ -1,1 +1,56 @@
1
- あなたが作ったモジュール(KeyInput)をリンクしてないのでは?
1
+ あなたが作ったモジュール(KeyInput)をリンクしてないのでは?
2
+
3
+ [追記] KeyInput(改)
4
+
5
+ ```C++
6
+ /*KeyInput.h*/
7
+ #pragma once
8
+
9
+ class KeyInput {
10
+ private:
11
+ int key_is_pressing_for[256];
12
+ const int* key_state_pointer;
13
+ char keys[256];
14
+ const char* key_pointer;
15
+ public:
16
+ void refresh_keys();
17
+ int get_key_state(int id) const;
18
+ const char* get_key_pointer() const;
19
+ const int* get_key_state_pointer() const;
20
+ KeyInput();
21
+ };
22
+ ```
23
+
24
+ ```C++
25
+ /* KeyInput.cpp */
26
+ #include <DxLib.h>
27
+ #include "KeyInput.h"
28
+
29
+ void KeyInput::refresh_keys() {
30
+ GetHitKeyStateAll(keys);
31
+ for ( int i = 0; i <= 256; i++) {
32
+ if (keys[i] != 0) {
33
+ key_is_pressing_for[i]++;
34
+ } else {
35
+ key_is_pressing_for[i] = 0;
36
+ }
37
+ }
38
+ }
39
+
40
+ int KeyInput::get_key_state(int id) const {
41
+ return key_is_pressing_for[id];
42
+ }
43
+
44
+ const char* KeyInput::get_key_pointer() const {
45
+ return key_pointer;
46
+ }
47
+
48
+ const int* KeyInput::get_key_state_pointer() const {
49
+ return key_is_pressing_for;
50
+ }
51
+
52
+ KeyInput::KeyInput() {
53
+ key_pointer = keys;
54
+ key_state_pointer = key_is_pressing_for;
55
+ }
56
+ ```

1

微修正

2020/02/29 04:01

投稿

episteme
episteme

スコア16612

answer CHANGED
@@ -1,1 +1,1 @@
1
- あなたが作ったモジュールをリンクしてないのでは?
1
+ あなたが作ったモジュール(KeyInput)をリンクしてないのでは?