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

質問編集履歴

1

ソースコードの追加及び分割

2020/02/27 03:59

投稿

Zuckerbaum
Zuckerbaum

スコア5

title CHANGED
File without changes
body CHANGED
@@ -80,9 +80,9 @@
80
80
 
81
81
  return 0;
82
82
  }
83
+ ```
83
84
 
84
-
85
+ ```C++
85
-
86
86
  /*Menu.h*/
87
87
  #pragma once
88
88
  #ifndef STD_STRING
@@ -133,9 +133,9 @@
133
133
  void draw_menu();
134
134
  ~Menu();
135
135
  };
136
+ ```
136
137
 
137
-
138
+ ```C++
138
-
139
139
  /*Menu.cpp*/
140
140
  #ifndef STD_STRING
141
141
  #define STD_STRING
@@ -284,6 +284,88 @@
284
284
  };
285
285
  ```
286
286
 
287
+
288
+ ```C++
289
+ /*KeyInput.h*/
290
+ #pragma once
291
+ class KeyInput {
292
+ private:
293
+ int
294
+ key_is_pressing_for[256];
295
+ const int*
296
+ key_state_pointer;
297
+ char
298
+ keys[256];
299
+ const char*
300
+ key_pointer;
301
+ public:
302
+ void refresh_keys();
303
+ int get_key_state(int id);
304
+ const char* get_key_pointer();
305
+ const int* get_key_state_pointer();
306
+ KeyInput();
307
+ };
308
+ ```
309
+
310
+
311
+ ```C++
312
+ /*KeyInput.cpp*/
313
+ #ifndef STD_ARRAY
314
+ #define STD_ARRAY
315
+ #include <array>
316
+ #endif
317
+
318
+ #include <DxLib.h>
319
+
320
+ class KeyInput {
321
+ private:
322
+ int
323
+ key_is_pressing_for[256];
324
+
325
+ const int*
326
+ key_state_pointer;
327
+
328
+ char
329
+ keys[256];
330
+
331
+ const char*
332
+ key_pointer;
333
+
334
+ public:
335
+ void refresh_keys() {
336
+ int i;
337
+
338
+ GetHitKeyStateAll(keys);
339
+
340
+ for (i = 0; i <= 256; i++) {
341
+ if (keys[i] != 0) {
342
+ key_is_pressing_for[i]++;
343
+ }
344
+ else {
345
+ key_is_pressing_for[i] = 0;
346
+ }
347
+ }
348
+ }
349
+
350
+ int get_key_state(int id) {
351
+ return key_is_pressing_for[id];
352
+ }
353
+
354
+ const char* get_key_pointer() {
355
+ return key_pointer;
356
+ }
357
+
358
+ const int* get_key_state_pointer() {
359
+ return key_is_pressing_for;
360
+ }
361
+
362
+ KeyInput() {
363
+ key_pointer = keys;
364
+ key_state_pointer = key_is_pressing_for;
365
+ }
366
+ };
367
+ ```
368
+
287
369
  ### 試したこと
288
370
 
289
371
  ソリューションのクリーンを行って再ビルド