参考になりますか?
C++
1#include "DxLib.h"
2
3int WINAPI WinMain(HINSTANCE hI, HINSTANCE hP, LPSTR lpC, int nC)
4{
5 ChangeWindowMode(TRUE);
6 if (DxLib_Init() == -1) return -1;
7 SetDrawScreen(DX_SCREEN_BACK);
8 SetFontSize(100);
9
10 int color = GetColor(0, 255, 0);
11 int count = 100;
12 int beep = 0;
13
14 while (ProcessMessage() == 0) {
15 char keyBuf[256];
16 GetHitKeyStateAll(keyBuf);
17 if (keyBuf[KEY_INPUT_ESCAPE]) break;
18 if (keyBuf[KEY_INPUT_UP] && ++count > 200) {
19 PlayBeep(); beep = 5; count = 200;
20 }
21 if (keyBuf[KEY_INPUT_DOWN] && --count < 0) {
22 PlayBeep(); beep = 5; count = 0;
23 }
24 if (beep > 0 && --beep == 0) StopBeep();
25
26 ClearDrawScreen();
27 DrawFormatString(50, 50, color, "%d", count);
28 ScreenFlip();
29 }
30 DxLib_End();
31 return 0;
32}
追記
一瞬キーを押したつもりでも複数回入力されます。
1つずつカウントアップ・ダウンさせたかったら次のようにすればできます。
C++
1#include "DxLib.h"
2
3int WINAPI WinMain(HINSTANCE hI, HINSTANCE hP, LPSTR lpC, int nC)
4{
5 ChangeWindowMode(TRUE);
6 if (DxLib_Init() == -1) return -1;
7 SetDrawScreen(DX_SCREEN_BACK);
8 SetFontSize(100);
9
10 int color = GetColor(0, 255, 0);
11 int count = 100;
12 int beep = 0;
13 int keyCount[256] = { 0 };
14
15 while (ProcessMessage() == 0) {
16 char keyBuf[256];
17 GetHitKeyStateAll(keyBuf);
18 for (int i = 0; i < 256; i++) !keyBuf[i] ? keyCount[i] = 0 : keyCount[i]++;
19
20 if (keyCount[KEY_INPUT_ESCAPE]) break;
21 if (keyCount[KEY_INPUT_UP] == 1 && ++count > 200) {
22 PlayBeep(); beep = 5; count = 200;
23 }
24 if (keyCount[KEY_INPUT_DOWN] == 1 && --count < 0) {
25 PlayBeep(); beep = 5; count = 0;
26 }
27 if (beep > 0 && --beep == 0) StopBeep();
28
29 ClearDrawScreen();
30 DrawFormatString(50, 50, color, "%d", count);
31 ScreenFlip();
32 }
33 DxLib_End();
34 return 0;
35}
追記2
1つずつカウントアップ・ダウンさせたいし、リピート機能も付けたい場合は、
C++
1 if (keyCount[KEY_INPUT_ESCAPE]) break;
2 int k = keyCount[KEY_INPUT_UP];
3 if ((k == 1 || k > 30) && ++count > 200) {
4 PlayBeep(); beep = 5; count = 200;
5 }
6 k = keyCount[KEY_INPUT_DOWN];
7 if ((k == 1 || k > 30) && --count < 0) {
8 PlayBeep(); beep = 5; count = 0;
9 }
10 if (beep > 0 && --beep == 0) StopBeep();