-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathinputCtrl.h
73 lines (54 loc) · 2.14 KB
/
inputCtrl.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
//////////////////////////////////////////////////
// 入力 コントローラー
// 作成:kanaaa224
//////////////////////////////////////////////////
#pragma once
#include <math.h>
#include "DxLib.h"
#define PAD_BUTTONS 16 // ゲームコントローラー全ボタン数
#define KEYBOARD_KEYS 256 // キーボード全キー数
#define STICK_MAX 32767.f // スティック最大値
#define PRESS 1 // 押された瞬間
#define PRESSED 2 // 押されている間
#define RELEASE 3 // 離した瞬間
#define L 0 // 左
#define R 1 // 右
// スティック入力 構造体
struct PadStick {
float x = 0; // 横軸値
float y = 0; // 縦軸値
};
// マウスカーソル 構造体
struct MousePoint {
int x = 0; // 横軸値
int y = 0; // 縦軸値
};
// 入力コントローラー クラス(ゲームコントローラー / キーボード・マウス)
class InputCtrl {
private:
static char nowBtn[PAD_BUTTONS]; // 今回のボタン入力
static char oldBtn[PAD_BUTTONS]; // 前回のボタン入力
static XINPUT_STATE padInput; // ゲームコントローラー入力状態
static PadStick padLStick; // 左スティック
static PadStick padRStick; // 右スティック
static int nowKey[KEYBOARD_KEYS]; // 今回のキーボードキー入力
static MousePoint mousePoint; // マウスカーソルの位置
static int nowMouseClick[2]; // 今回のマウスクリック入力
static int oldMouseClick[2]; // 前回のマウスクリック入力
InputCtrl() = default;
public:
// 入力状況の更新
static void Update();
// コントローラーのボタンの状態を取得
static int GetButtonState(int);
// コントローラーのスティックの状態を取得(構造体)
static PadStick GetStickState(int);
// コントローラーのスティックの傾き割合を取得(構造体)
static PadStick GetStickRatio(int);
// キーボードのキーの状態を取得
static int GetKeyState(int);
// マウスのボタンの状態を取得
static int GetMouseState(int);
// マウスのカーソル位置を取得(構造体)
static MousePoint GetMouseCursor();
};