SDXFrameWork  0.04
SDXFrameWork
 全て クラス ネームスペース 関数 変数 ページ
Keyboard.h
1 #pragma once
2 #include <Multimedia/SDX.h>
3 #include <Multimedia/Key.h>
4 #include <Multimedia/InputEnum.h>
5 
6 namespace SDX
7 {
9 class Keyboard
11 {
12 private:
13  Keyboard(const Keyboard &key){};
14  Keyboard& operator =(const Keyboard &key){};
15 public:
16  Keyboard(){};
17  bool press[256];
18 
19  Key Back;
20  Key Tab;
21  Key Return;
22  Key LShift;
23  Key RShift;
24  Key LControl;
25  Key RControl;
26  Key Escape;
27  Key Space;
28  Key PageUp;
29  Key PageDown;
30  Key End;
31  Key Home;
32  Key Left;
33  Key Up;
34  Key Right;
35  Key Down;
36  Key Insert;
37  Key Delete;
38 
39  Key Minus;
40  Key Yen;
41  Key PrevTrack;
42  Key Period;
43  Key Slash;
44  Key LAlt;
45  Key RAlt;
46  Key Scroll;
47  Key Semicolon;
48  Key Colon;
49  Key LBracket;
50  Key RBracket;
51  Key At;
52  Key Backslash;
53  Key Comma;
54  Key Capslock;
55  Key Pause;
56 
57  Key Numpad0;
58  Key Numpad1;
59  Key Numpad2;
60  Key Numpad3;
61  Key Numpad4;
62  Key Numpad5;
63  Key Numpad6;
64  Key Numpad7;
65  Key Numpad8;
66  Key Numpad9;
67  Key Multiply;
68  Key Add;
69  Key Subtract;
70  Key Decimal;
71  Key Divide;
72  Key NUMPADEnter;
73 
74  Key F1;
75  Key F2;
76  Key F3;
77  Key F4;
78  Key F5;
79  Key F6;
80  Key F7;
81  Key F8;
82  Key F9;
83  Key F10;
84  Key F11;
85  Key F12;
86 
87  Key A;
88  Key B;
89  Key C;
90  Key D;
91  Key E;
92  Key F;
93  Key G;
94  Key H;
95  Key I;
96  Key J;
97  Key K;
98  Key L;
99  Key M;
100  Key N;
101  Key O;
102  Key P;
103  Key Q;
104  Key R;
105  Key S;
106  Key T;
107  Key U;
108  Key V;
109  Key W;
110  Key X;
111  Key Y;
112  Key Z;
113  Key _0;
114  Key _1;
115  Key _2;
116  Key _3;
117  Key _4;
118  Key _5;
119  Key _6;
120  Key _7;
121  Key _8;
122  Key _9;
123 
125  void Reset()
126  {
127  Back.Reset();
128  Tab.Reset();
129  Return.Reset();
130  LShift.Reset();
131  RShift.Reset();
132  LControl.Reset();
133  RControl.Reset();
134  Escape.Reset();
135  Space.Reset();
136  PageUp.Reset();
137  PageDown.Reset();
138  End.Reset();
139  Home.Reset();
140  Left.Reset();
141  Up.Reset();
142  Right.Reset();
143  Down.Reset();
144  Insert.Reset();
145  Delete.Reset();
146 
147  Minus.Reset();
148  Yen.Reset();
149  PrevTrack.Reset();
150  Period.Reset();
151  Slash.Reset();
152  LAlt.Reset();
153  RAlt.Reset();
154  Scroll.Reset();
155  Semicolon.Reset();
156  Colon.Reset();
157  LBracket.Reset();
158  RBracket.Reset();
159  At.Reset();
160  Backslash.Reset();
161  Comma.Reset();
162  Capslock.Reset();
163  Pause.Reset();
164 
165  Numpad0.Reset();
166  Numpad1.Reset();
167  Numpad2.Reset();
168  Numpad3.Reset();
169  Numpad4.Reset();
170  Numpad5.Reset();
171  Numpad6.Reset();
172  Numpad7.Reset();
173  Numpad8.Reset();
174  Numpad9.Reset();
175  Multiply.Reset();
176  Add.Reset();
177  Subtract.Reset();
178  Decimal.Reset();
179  Divide.Reset();
180  NUMPADEnter.Reset();
181 
182  F1.Reset();
183  F2.Reset();
184  F3.Reset();
185  F4.Reset();
186  F5.Reset();
187  F6.Reset();
188  F7.Reset();
189  F8.Reset();
190  F9.Reset();
191  F10.Reset();
192  F11.Reset();
193  F12.Reset();
194 
195  A.Reset();
196  B.Reset();
197  C.Reset();
198  D.Reset();
199  E.Reset();
200  F.Reset();
201  G.Reset();
202  H.Reset();
203  I.Reset();
204  J.Reset();
205  K.Reset();
206  L.Reset();
207  M.Reset();
208  N.Reset();
209  O.Reset();
210  P.Reset();
211  Q.Reset();
212  R.Reset();
213  S.Reset();
214  T.Reset();
215  U.Reset();
216  V.Reset();
217  W.Reset();
218  X.Reset();
219  Y.Reset();
220  Z.Reset();
221  _0.Reset();
222  _1.Reset();
223  _2.Reset();
224  _3.Reset();
225  _4.Reset();
226  _5.Reset();
227  _6.Reset();
228  _7.Reset();
229  _8.Reset();
230  _9.Reset();
231  }
232 
234  void Update()
235  {
236  #ifdef DXLIB
237  char Buf[256];
238  DxLib::GetHitKeyStateAll( Buf );
239 
240  Back.Update( Buf[ (int)KeyCode::Back ] );
241  Tab.Update( Buf[ (int)KeyCode::Tab ] );
242  Return.Update( Buf[ (int)KeyCode::Return ] );
243  LShift.Update( Buf[ (int)KeyCode::LShift ] );
244  RShift.Update( Buf[ (int)KeyCode::RShift ] );
245  LControl.Update( Buf[ (int)KeyCode::LControl ] );
246  RControl.Update( Buf[ (int)KeyCode::RControl ] );
247  Escape.Update( Buf[ (int)KeyCode::Escape ] );
248  Space.Update( Buf[ (int)KeyCode::Space ] );
249  PageUp.Update( Buf[ (int)KeyCode::PageUp ] );
250  PageDown.Update( Buf[ (int)KeyCode::PageDown ] );
251  End.Update( Buf[ (int)KeyCode::End ] );
252  Home.Update( Buf[ (int)KeyCode::Home ] );
253  Left.Update( Buf[ (int)KeyCode::Left ] );
254  Up.Update( Buf[ (int)KeyCode::Up ] );
255  Right.Update( Buf[ (int)KeyCode::Right ] );
256  Down.Update( Buf[ (int)KeyCode::Down ] );
257  Insert.Update( Buf[ (int)KeyCode::Insert ] );
258  Delete.Update( Buf[ (int)KeyCode::Delete ] );
259 
260  Minus.Update( Buf[ (int)KeyCode::Minus ] );
261  Yen.Update( Buf[ (int)KeyCode::Yen ] );
262  PrevTrack.Update( Buf[ (int)KeyCode::PrevTrack ] );
263  Period.Update( Buf[ (int)KeyCode::Period ] );
264  Slash.Update( Buf[ (int)KeyCode::Slash ] );
265  LAlt.Update( Buf[ (int)KeyCode::LAlt ] );
266  RAlt.Update( Buf[ (int)KeyCode::RAlt ] );
267  Scroll.Update( Buf[ (int)KeyCode::Scroll ] );
268  Semicolon.Update( Buf[ (int)KeyCode::Semicolon ] );
269  Colon.Update( Buf[ (int)KeyCode::Colon ] );
270  LBracket.Update( Buf[ (int)KeyCode::LBracket ] );
271  RBracket.Update( Buf[ (int)KeyCode::RBracket ] );
272  At.Update( Buf[ (int)KeyCode::At ] );
273  Backslash.Update( Buf[ (int)KeyCode::Backslash ] );
274  Comma.Update( Buf[ (int)KeyCode::Comma ] );
275  Capslock.Update( Buf[ (int)KeyCode::Capslock ] );
276  Pause.Update( Buf[ (int)KeyCode::Pause ] );
277 
278  Numpad0.Update( Buf[ (int)KeyCode::Numpad0 ] );
279  Numpad1.Update( Buf[ (int)KeyCode::Numpad1 ] );
280  Numpad2.Update( Buf[ (int)KeyCode::Numpad2 ] );
281  Numpad3.Update( Buf[ (int)KeyCode::Numpad3 ] );
282  Numpad4.Update( Buf[ (int)KeyCode::Numpad4 ] );
283  Numpad5.Update( Buf[ (int)KeyCode::Numpad5 ] );
284  Numpad6.Update( Buf[ (int)KeyCode::Numpad6 ] );
285  Numpad7.Update( Buf[ (int)KeyCode::Numpad7 ] );
286  Numpad8.Update( Buf[ (int)KeyCode::Numpad8 ] );
287  Numpad9.Update( Buf[ (int)KeyCode::Numpad9 ] );
288  Multiply.Update( Buf[ (int)KeyCode::Multiply ] );
289  Add.Update( Buf[ (int)KeyCode::Add ] );
290  Subtract.Update( Buf[ (int)KeyCode::Subtract ] );
291  Decimal.Update( Buf[ (int)KeyCode::Decimal ] );
292  Divide.Update( Buf[ (int)KeyCode::Divide ] );
293  NUMPADEnter.Update( Buf[ (int)KeyCode::NUMPADEnter ] );
294 
295  F1.Update( Buf[ (int)KeyCode::F1 ] );
296  F2.Update( Buf[ (int)KeyCode::F2 ] );
297  F3.Update( Buf[ (int)KeyCode::F3 ] );
298  F4.Update( Buf[ (int)KeyCode::F4 ] );
299  F5.Update( Buf[ (int)KeyCode::F5 ] );
300  F6.Update( Buf[ (int)KeyCode::F6 ] );
301  F7.Update( Buf[ (int)KeyCode::F7 ] );
302  F8.Update( Buf[ (int)KeyCode::F8 ] );
303  F9.Update( Buf[ (int)KeyCode::F9 ] );
304  F10.Update( Buf[ (int)KeyCode::F10 ] );
305  F11.Update( Buf[ (int)KeyCode::F11 ] );
306  F12.Update( Buf[ (int)KeyCode::F12 ] );
307 
308  A.Update( Buf[ (int)KeyCode::A ] );
309  B.Update( Buf[ (int)KeyCode::B ] );
310  C.Update( Buf[ (int)KeyCode::C ] );
311  D.Update( Buf[ (int)KeyCode::D ] );
312  E.Update( Buf[ (int)KeyCode::E ] );
313  F.Update( Buf[ (int)KeyCode::F ] );
314  G.Update( Buf[ (int)KeyCode::G ] );
315  H.Update( Buf[ (int)KeyCode::H ] );
316  I.Update( Buf[ (int)KeyCode::I ] );
317  J.Update( Buf[ (int)KeyCode::J ] );
318  K.Update( Buf[ (int)KeyCode::K ] );
319  L.Update( Buf[ (int)KeyCode::L ] );
320  M.Update( Buf[ (int)KeyCode::M ] );
321  N.Update( Buf[ (int)KeyCode::N ] );
322  O.Update( Buf[ (int)KeyCode::O ] );
323  P.Update( Buf[ (int)KeyCode::P ] );
324  Q.Update( Buf[ (int)KeyCode::Q ] );
325  R.Update( Buf[ (int)KeyCode::R ] );
326  S.Update( Buf[ (int)KeyCode::S ] );
327  T.Update( Buf[ (int)KeyCode::T ] );
328  U.Update( Buf[ (int)KeyCode::U ] );
329  V.Update( Buf[ (int)KeyCode::V ] );
330  W.Update( Buf[ (int)KeyCode::W ] );
331  X.Update( Buf[ (int)KeyCode::X ] );
332  Y.Update( Buf[ (int)KeyCode::Y ] );
333  Z.Update( Buf[ (int)KeyCode::Z ] );
334  _0.Update( Buf[ (int)KeyCode::_0 ] );
335  _1.Update( Buf[ (int)KeyCode::_1 ] );
336  _2.Update( Buf[ (int)KeyCode::_2 ] );
337  _3.Update( Buf[ (int)KeyCode::_3 ] );
338  _4.Update( Buf[ (int)KeyCode::_4 ] );
339  _5.Update( Buf[ (int)KeyCode::_5 ] );
340  _6.Update( Buf[ (int)KeyCode::_6 ] );
341  _7.Update( Buf[ (int)KeyCode::_7 ] );
342  _8.Update( Buf[ (int)KeyCode::_8 ] );
343  _9.Update( Buf[ (int)KeyCode::_9 ] );
344  #elif defined(SDL)
345  Back.Update( press[ (int)KeyCode::Back ] );
346  Tab.Update(press[(int)KeyCode::Tab]);
347  Return.Update(press[(int)KeyCode::Return]);
348  LShift.Update(press[(int)KeyCode::LShift]);
349  RShift.Update(press[(int)KeyCode::RShift]);
350  LControl.Update(press[(int)KeyCode::LControl]);
351  RControl.Update(press[(int)KeyCode::RControl]);
352  Escape.Update(press[(int)KeyCode::Escape]);
353  Space.Update(press[(int)KeyCode::Space]);
354  PageUp.Update(press[(int)KeyCode::PageUp]);
355  PageDown.Update(press[(int)KeyCode::PageDown]);
356  End.Update(press[(int)KeyCode::End]);
357  Home.Update(press[(int)KeyCode::Home]);
358  Left.Update(press[(int)KeyCode::Left]);
359  Up.Update(press[(int)KeyCode::Up]);
360  Right.Update(press[(int)KeyCode::Right]);
361  Down.Update(press[(int)KeyCode::Down]);
362  Insert.Update(press[(int)KeyCode::Insert]);
363  Delete.Update(press[(int)KeyCode::Delete]);
364 
365  Minus.Update(press[(int)KeyCode::Minus]);
366  Yen.Update(press[(int)KeyCode::Yen]);
367  PrevTrack.Update(press[(int)KeyCode::PrevTrack]);
368  Period.Update(press[(int)KeyCode::Period]);
369  Slash.Update(press[(int)KeyCode::Slash]);
370  LAlt.Update(press[(int)KeyCode::LAlt]);
371  RAlt.Update(press[(int)KeyCode::RAlt]);
372  Scroll.Update(press[(int)KeyCode::Scroll]);
373  Semicolon.Update(press[(int)KeyCode::Semicolon]);
374  Colon.Update(press[(int)KeyCode::Colon]);
375  LBracket.Update(press[(int)KeyCode::LBracket]);
376  RBracket.Update(press[(int)KeyCode::RBracket]);
377  At.Update(press[(int)KeyCode::At]);
378  Backslash.Update(press[(int)KeyCode::Backslash]);
379  Comma.Update(press[(int)KeyCode::Comma]);
380  Capslock.Update(press[(int)KeyCode::Capslock]);
381  Pause.Update(press[(int)KeyCode::Pause]);
382 
383  Numpad0.Update(press[(int)KeyCode::Numpad0]);
384  Numpad1.Update(press[(int)KeyCode::Numpad1]);
385  Numpad2.Update(press[(int)KeyCode::Numpad2]);
386  Numpad3.Update(press[(int)KeyCode::Numpad3]);
387  Numpad4.Update(press[(int)KeyCode::Numpad4]);
388  Numpad5.Update(press[(int)KeyCode::Numpad5]);
389  Numpad6.Update(press[(int)KeyCode::Numpad6]);
390  Numpad7.Update(press[(int)KeyCode::Numpad7]);
391  Numpad8.Update(press[(int)KeyCode::Numpad8]);
392  Numpad9.Update(press[(int)KeyCode::Numpad9]);
393  Multiply.Update(press[(int)KeyCode::Multiply]);
394  Add.Update(press[(int)KeyCode::Add]);
395  Subtract.Update(press[(int)KeyCode::Subtract]);
396  Decimal.Update(press[(int)KeyCode::Decimal]);
397  Divide.Update(press[(int)KeyCode::Divide]);
398  NUMPADEnter.Update(press[(int)KeyCode::NUMPADEnter]);
399 
400  F1.Update(press[(int)KeyCode::F1]);
401  F2.Update(press[(int)KeyCode::F2]);
402  F3.Update(press[(int)KeyCode::F3]);
403  F4.Update(press[(int)KeyCode::F4]);
404  F5.Update(press[(int)KeyCode::F5]);
405  F6.Update(press[(int)KeyCode::F6]);
406  F7.Update(press[(int)KeyCode::F7]);
407  F8.Update(press[(int)KeyCode::F8]);
408  F9.Update(press[(int)KeyCode::F9]);
409  F10.Update(press[(int)KeyCode::F10]);
410  F11.Update(press[(int)KeyCode::F11]);
411  F12.Update(press[(int)KeyCode::F12]);
412 
413  A.Update(press[(int)KeyCode::A]);
414  B.Update(press[(int)KeyCode::B]);
415  C.Update(press[(int)KeyCode::C]);
416  D.Update(press[(int)KeyCode::D]);
417  E.Update(press[(int)KeyCode::E]);
418  F.Update(press[(int)KeyCode::F]);
419  G.Update(press[(int)KeyCode::G]);
420  H.Update(press[(int)KeyCode::H]);
421  I.Update(press[(int)KeyCode::I]);
422  J.Update(press[(int)KeyCode::J]);
423  K.Update(press[(int)KeyCode::K]);
424  L.Update(press[(int)KeyCode::L]);
425  M.Update(press[(int)KeyCode::M]);
426  N.Update(press[(int)KeyCode::N]);
427  O.Update(press[(int)KeyCode::O]);
428  P.Update(press[(int)KeyCode::P]);
429  Q.Update(press[(int)KeyCode::Q]);
430  R.Update(press[(int)KeyCode::R]);
431  S.Update(press[(int)KeyCode::S]);
432  T.Update(press[(int)KeyCode::T]);
433  U.Update(press[(int)KeyCode::U]);
434  V.Update(press[(int)KeyCode::V]);
435  W.Update(press[(int)KeyCode::W]);
436  X.Update(press[(int)KeyCode::X]);
437  Y.Update(press[(int)KeyCode::Y]);
438  Z.Update(press[(int)KeyCode::Z]);
439  _0.Update(press[(int)KeyCode::_0]);
440  _1.Update(press[(int)KeyCode::_1]);
441  _2.Update(press[(int)KeyCode::_2]);
442  _3.Update(press[(int)KeyCode::_3]);
443  _4.Update(press[(int)KeyCode::_4]);
444  _5.Update(press[(int)KeyCode::_5]);
445  _6.Update(press[(int)KeyCode::_6]);
446  _7.Update(press[(int)KeyCode::_7]);
447  _8.Update(press[(int)KeyCode::_8]);
448  _9.Update(press[(int)KeyCode::_9]);
449  #endif
450  }
451 
453  static bool HoldAnyKey()
454  {
455  #ifdef DXLIB
456  return !DxLib::CheckHitKeyAll();
457  #elif defined(SDL)
458  const Uint8 *press = SDL_GetKeyboardState(NULL);
459 
460  return(
461  press[(int)KeyCode::Back] ||
462  press[(int)KeyCode::Tab] ||
463  press[(int)KeyCode::Return] ||
464  press[(int)KeyCode::LShift] ||
465  press[(int)KeyCode::RShift] ||
466  press[(int)KeyCode::LControl] ||
467  press[(int)KeyCode::RControl] ||
468  press[(int)KeyCode::Escape] ||
469  press[(int)KeyCode::Space] ||
470  press[(int)KeyCode::PageUp] ||
471  press[(int)KeyCode::PageDown] ||
472  press[(int)KeyCode::End] ||
473  press[(int)KeyCode::Home] ||
474  press[(int)KeyCode::Left] ||
475  press[(int)KeyCode::Up] ||
476  press[(int)KeyCode::Right] ||
477  press[(int)KeyCode::Down] ||
478  press[(int)KeyCode::Insert] ||
479  press[(int)KeyCode::Delete] ||
480 
481  press[(int)KeyCode::Minus] ||
482  press[ (int)KeyCode::Yen ] ||
483  press[ (int)KeyCode::PrevTrack ] ||
484  press[(int)KeyCode::Period] ||
485  press[(int)KeyCode::Slash] ||
486  press[(int)KeyCode::LAlt] ||
487  press[(int)KeyCode::RAlt] ||
488  press[(int)KeyCode::Scroll] ||
489  press[(int)KeyCode::Semicolon] ||
490  press[(int)KeyCode::Colon] ||
491  press[(int)KeyCode::LBracket] ||
492  press[(int)KeyCode::RBracket] ||
493  press[(int)KeyCode::At] ||
494  press[(int)KeyCode::Backslash] ||
495  press[(int)KeyCode::Comma] ||
496  press[(int)KeyCode::Capslock] ||
497  press[(int)KeyCode::Pause] ||
498 
499  press[(int)KeyCode::Numpad0] ||
500  press[(int)KeyCode::Numpad1] ||
501  press[(int)KeyCode::Numpad2] ||
502  press[(int)KeyCode::Numpad3] ||
503  press[(int)KeyCode::Numpad4] ||
504  press[(int)KeyCode::Numpad5] ||
505  press[(int)KeyCode::Numpad6] ||
506  press[(int)KeyCode::Numpad7] ||
507  press[(int)KeyCode::Numpad8] ||
508  press[(int)KeyCode::Numpad9] ||
509  press[(int)KeyCode::Multiply] ||
510  press[(int)KeyCode::Add] ||
511  press[(int)KeyCode::Subtract] ||
512  press[(int)KeyCode::Decimal] ||
513  press[(int)KeyCode::Divide] ||
514  press[(int)KeyCode::NUMPADEnter] ||
515 
516  press[(int)KeyCode::F1] ||
517  press[(int)KeyCode::F2] ||
518  press[(int)KeyCode::F3] ||
519  press[(int)KeyCode::F4] ||
520  press[(int)KeyCode::F5] ||
521  press[(int)KeyCode::F6] ||
522  press[(int)KeyCode::F7] ||
523  press[(int)KeyCode::F8] ||
524  press[(int)KeyCode::F9] ||
525  press[(int)KeyCode::F10] ||
526  press[(int)KeyCode::F11] ||
527  press[(int)KeyCode::F12] ||
528 
529  press[(int)KeyCode::A] ||
530  press[(int)KeyCode::B] ||
531  press[(int)KeyCode::C] ||
532  press[(int)KeyCode::D] ||
533  press[(int)KeyCode::E] ||
534  press[(int)KeyCode::F] ||
535  press[(int)KeyCode::G] ||
536  press[(int)KeyCode::H] ||
537  press[(int)KeyCode::I] ||
538  press[(int)KeyCode::J] ||
539  press[(int)KeyCode::K] ||
540  press[(int)KeyCode::L] ||
541  press[(int)KeyCode::M] ||
542  press[(int)KeyCode::N] ||
543  press[(int)KeyCode::O] ||
544  press[(int)KeyCode::P] ||
545  press[(int)KeyCode::Q] ||
546  press[(int)KeyCode::R] ||
547  press[(int)KeyCode::S] ||
548  press[(int)KeyCode::T] ||
549  press[(int)KeyCode::U] ||
550  press[(int)KeyCode::V] ||
551  press[(int)KeyCode::W] ||
552  press[(int)KeyCode::X] ||
553  press[(int)KeyCode::Y] ||
554  press[(int)KeyCode::Z] ||
555  press[(int)KeyCode::_0] ||
556  press[(int)KeyCode::_1] ||
557  press[(int)KeyCode::_2] ||
558  press[(int)KeyCode::_3] ||
559  press[(int)KeyCode::_4] ||
560  press[(int)KeyCode::_5] ||
561  press[(int)KeyCode::_6] ||
562  press[(int)KeyCode::_7] ||
563  press[(int)KeyCode::_8] ||
564  press[(int)KeyCode::_9] );
565  return false;
566  #endif
567  }
568 
569 };
570 }
void Reset()
状態のリセット.
Definition: Keyboard.h:125
void Update()
状態の更新.
Definition: Keyboard.h:234
void Reset()
キーのリセット.
Definition: Key.h:17
void Update(int 押下フラグ)
押下状態の更新.
Definition: Key.h:26
static bool HoldAnyKey()
いずれかのキーが押されているか取得.
Definition: Keyboard.h:453