5 #include <Multimedia/SDX.h>
6 #include <Multimedia/Keyboard.h>
7 #include <Multimedia/Mouse.h>
8 #include <Multimedia/Joypad.h>
9 #include <Multimedia/Touch.h>
10 #include <Multimedia/Gesture.h>
11 #include <Multimedia/Window.h>
34 for (
auto && it :
touch) it.Reset();
47 for (
auto && it :
touch)
65 switch (event.key.keysym.sym)
67 case SDLK_BACKSPACE:
key.press[KeyCode::Back] = isPush;
break;
68 case SDLK_TAB:
key.press[KeyCode::Tab] = isPush;
break;
69 case SDLK_RETURN:
key.press[KeyCode::Return] = isPush;
break;
70 case SDLK_LSHIFT:
key.press[KeyCode::LShift] = isPush;
break;
71 case SDLK_RSHIFT:
key.press[KeyCode::RShift] = isPush;
break;
72 case SDLK_LCTRL:
key.press[KeyCode::LControl] = isPush;
break;
73 case SDLK_RCTRL:
key.press[KeyCode::RControl] = isPush;
break;
74 case SDLK_ESCAPE:
key.press[KeyCode::Escape] = isPush;
break;
75 case SDLK_SPACE:
key.press[KeyCode::Space] = isPush;
break;
76 case SDLK_PAGEUP:
key.press[KeyCode::PageUp] = isPush;
break;
77 case SDLK_PAGEDOWN:
key.press[KeyCode::PageDown] = isPush;
break;
78 case SDLK_END:
key.press[KeyCode::End] = isPush;
break;
79 case SDLK_HOME:
key.press[KeyCode::Home] = isPush;
break;
81 key.press[KeyCode::Left] = isPush;
82 pad.press[PadCode::Left] = isPush;
85 key.press[KeyCode::Up] = isPush;
86 pad.press[PadCode::Up] = isPush;
89 key.press[KeyCode::Right] = isPush;
90 pad.press[PadCode::Right] = isPush;
93 key.press[KeyCode::Down] = isPush;
94 pad.press[PadCode::Down] = isPush;
96 case SDLK_INSERT:
key.press[KeyCode::Insert] = isPush;
break;
97 case SDLK_DELETE:
key.press[KeyCode::Delete] = isPush;
break;
99 case SDLK_MINUS:
key.press[KeyCode::Minus] = isPush;
break;
102 case SDLK_PERIOD:
key.press[KeyCode::Period] = isPush;
break;
103 case SDLK_SLASH:
key.press[KeyCode::Slash] = isPush;
break;
104 case SDLK_LALT:
key.press[KeyCode::LAlt] = isPush;
break;
105 case SDLK_RALT:
key.press[KeyCode::RAlt] = isPush;
break;
106 case SDLK_SCROLLLOCK:
key.press[KeyCode::Scroll] = isPush;
break;
107 case SDLK_SEMICOLON:
key.press[KeyCode::Semicolon] = isPush;
break;
108 case SDLK_COLON:
key.press[KeyCode::Colon] = isPush;
break;
109 case SDLK_LEFTBRACKET:
key.press[KeyCode::LBracket] = isPush;
break;
110 case SDLK_RIGHTBRACKET:
key.press[KeyCode::RBracket] = isPush;
break;
111 case SDLK_AT:
key.press[KeyCode::At] = isPush;
break;
112 case SDLK_BACKSLASH:
key.press[KeyCode::Backslash] = isPush;
break;
113 case SDLK_COMMA:
key.press[KeyCode::Comma] = isPush;
break;
114 case SDLK_CAPSLOCK:
key.press[KeyCode::Capslock] = isPush;
break;
115 case SDLK_PAUSE:
key.press[KeyCode::Pause] = isPush;
break;
117 case SDLK_KP_0:
key.press[KeyCode::Numpad0] = isPush;
break;
118 case SDLK_KP_1:
key.press[KeyCode::Numpad1] = isPush;
break;
119 case SDLK_KP_2:
key.press[KeyCode::Numpad2] = isPush;
break;
120 case SDLK_KP_3:
key.press[KeyCode::Numpad3] = isPush;
break;
121 case SDLK_KP_4:
key.press[KeyCode::Numpad4] = isPush;
break;
122 case SDLK_KP_5:
key.press[KeyCode::Numpad5] = isPush;
break;
123 case SDLK_KP_6:
key.press[KeyCode::Numpad6] = isPush;
break;
124 case SDLK_KP_7:
key.press[KeyCode::Numpad7] = isPush;
break;
125 case SDLK_KP_8:
key.press[KeyCode::Numpad8] = isPush;
break;
126 case SDLK_KP_9:
key.press[KeyCode::Numpad9] = isPush;
break;
127 case SDLK_ASTERISK:
key.press[KeyCode::Multiply] = isPush;
break;
128 case SDLK_KP_PLUS:
key.press[KeyCode::Add] = isPush;
break;
129 case SDLK_KP_MINUS:
key.press[KeyCode::Subtract] = isPush;
break;
130 case SDLK_KP_PERIOD:
key.press[KeyCode::Decimal] = isPush;
break;
131 case SDLK_KP_DIVIDE:
key.press[KeyCode::Divide] = isPush;
break;
132 case SDLK_KP_ENTER:
key.press[KeyCode::NUMPADEnter] = isPush;
break;
134 case SDLK_F1:
key.press[KeyCode::F1] = isPush;
break;
135 case SDLK_F2:
key.press[KeyCode::F2] = isPush;
break;
136 case SDLK_F3:
key.press[KeyCode::F3] = isPush;
break;
137 case SDLK_F4:
key.press[KeyCode::F4] = isPush;
break;
138 case SDLK_F5:
key.press[KeyCode::F5] = isPush;
break;
139 case SDLK_F6:
key.press[KeyCode::F6] = isPush;
break;
140 case SDLK_F7:
key.press[KeyCode::F7] = isPush;
break;
141 case SDLK_F8:
key.press[KeyCode::F8] = isPush;
break;
142 case SDLK_F9:
key.press[KeyCode::F9] = isPush;
break;
143 case SDLK_F10:
key.press[KeyCode::F10] = isPush;
break;
144 case SDLK_F11:
key.press[KeyCode::F11] = isPush;
break;
145 case SDLK_F12:
key.press[KeyCode::F12] = isPush;
break;
148 key.press[KeyCode::A] = isPush;
149 pad.press[PadCode::Button5] = isPush;
151 case SDLK_b:
key.press[KeyCode::B] = isPush;
break;
153 key.press[KeyCode::C] = isPush;
154 pad.press[PadCode::Button3] = isPush;
157 key.press[KeyCode::D] = isPush;
158 pad.press[PadCode::Button7] = isPush;
160 case SDLK_e:
key.press[KeyCode::E] = isPush;
break;
162 key.press[KeyCode::F] = isPush;
163 pad.press[PadCode::Button8] = isPush;
165 case SDLK_g:
key.press[KeyCode::G] = isPush;
break;
166 case SDLK_h:
key.press[KeyCode::H] = isPush;
break;
167 case SDLK_i:
key.press[KeyCode::I] = isPush;
break;
168 case SDLK_j:
key.press[KeyCode::J] = isPush;
break;
169 case SDLK_k:
key.press[KeyCode::K] = isPush;
break;
170 case SDLK_l:
key.press[KeyCode::L] = isPush;
break;
171 case SDLK_m:
key.press[KeyCode::M] = isPush;
break;
173 key.press[KeyCode::N] = isPush;
175 case SDLK_o:
key.press[KeyCode::O] = isPush;
break;
176 case SDLK_p:
key.press[KeyCode::P] = isPush;
break;
177 case SDLK_q:
key.press[KeyCode::Q] = isPush;
break;
178 case SDLK_r:
key.press[KeyCode::R] = isPush;
break;
180 key.press[KeyCode::S] = isPush;
181 pad.press[PadCode::Button6] = isPush;
183 case SDLK_t:
key.press[KeyCode::T] = isPush;
break;
184 case SDLK_u:
key.press[KeyCode::U] = isPush;
break;
186 key.press[KeyCode::V] = isPush;
187 pad.press[PadCode::Button4] = isPush;
189 case SDLK_w:
key.press[KeyCode::W] = isPush;
break;
191 key.press[KeyCode::X] = isPush;
192 pad.press[PadCode::Button2] = isPush;
194 case SDLK_y:
key.press[KeyCode::Y] = isPush;
break;
196 key.press[KeyCode::Z] = isPush;
197 pad.press[PadCode::Button1] = isPush;
199 case SDLK_0:
key.press[KeyCode::_0] = isPush;
break;
200 case SDLK_1:
key.press[KeyCode::_1] = isPush;
break;
201 case SDLK_2:
key.press[KeyCode::_2] = isPush;
break;
202 case SDLK_3:
key.press[KeyCode::_3] = isPush;
break;
203 case SDLK_4:
key.press[KeyCode::_4] = isPush;
break;
204 case SDLK_5:
key.press[KeyCode::_5] = isPush;
break;
205 case SDLK_6:
key.press[KeyCode::_6] = isPush;
break;
206 case SDLK_7:
key.press[KeyCode::_7] = isPush;
break;
207 case SDLK_8:
key.press[KeyCode::_8] = isPush;
break;
208 case SDLK_9:
key.press[KeyCode::_9] = isPush;
break;
211 case SDL_JOYAXISMOTION:
213 if (event.jaxis.axis == 0)
220 if (event.jaxis.axis == 1)
227 case SDL_JOYHATMOTION:
228 pad.press[PadCode::Up] =
false;
229 pad.press[PadCode::Left] =
false;
230 pad.press[PadCode::Down] =
false;
231 pad.press[PadCode::Right] =
false;
233 switch (event.jhat.value)
235 case SDL_HAT_UP:
pad.press[PadCode::Up] =
true;
break;
236 case SDL_HAT_LEFT:
pad.press[PadCode::Left] =
true;
break;
237 case SDL_HAT_DOWN:
pad.press[PadCode::Down] =
true;
break;
238 case SDL_HAT_RIGHT:
pad.press[PadCode::Right] =
true;
break;
239 case SDL_HAT_LEFTUP:
pad.press[PadCode::Up] =
true;
pad.press[PadCode::Left] =
true;
break;
240 case SDL_HAT_RIGHTUP:
pad.press[PadCode::Up] =
true;
pad.press[PadCode::Right] =
true;
break;
241 case SDL_HAT_RIGHTDOWN:
pad.press[PadCode::Down] =
true;
pad.press[PadCode::Right] =
true;
break;
242 case SDL_HAT_LEFTDOWN:
pad.press[PadCode::Down] =
true;
pad.press[PadCode::Left] =
true;
break;
245 case SDL_JOYBUTTONUP:
247 case SDL_JOYBUTTONDOWN:
248 pad.press[(
PadCode)event.jbutton.button] = isPush;
250 case SDL_MOUSEMOTION:
251 mouse.xBuffer = event.motion.x;
252 mouse.yBuffer = event.motion.y;
254 case SDL_MOUSEBUTTONUP:
256 case SDL_MOUSEBUTTONDOWN:
257 switch (event.button.button)
259 case SDL_BUTTON_LEFT:
mouse.press[MouseCode::Left] = isPush;
break;
260 case SDL_BUTTON_RIGHT:
mouse.press[MouseCode::Right] = isPush;
break;
261 case SDL_BUTTON_MIDDLE:
mouse.press[MouseCode::Middle] = isPush;
break;
262 case SDL_BUTTON_X1:
mouse.press[MouseCode::_4] = isPush;
break;
263 case SDL_BUTTON_X2:
mouse.press[MouseCode::_5] = isPush;
break;
272 if (event.tfinger.fingerId >= 10)
break;
273 touch[(int)event.tfinger.fingerId].press = isPush;
274 if (event.tfinger.fingerId == 0)
mouse.press[MouseCode::Left] = isPush;
275 if (event.tfinger.fingerId == 1)
mouse.press[MouseCode::Right] = isPush;
276 case SDL_FINGERMOTION:
277 if (event.tfinger.fingerId >= 10)
break;
278 touch[(int)event.tfinger.fingerId].Position(event.tfinger.x, event.tfinger.y);
279 mouse.xBuffer = (int)
touch[(
int)
event.tfinger.fingerId].xBuffer;
280 mouse.yBuffer = (int)
touch[(
int)
event.tfinger.fingerId].yBuffer;
282 case SDL_MULTIGESTURE:
287 gesture.Position(event.mgesture.x, event.mgesture.y);
void Reset()
状態のリセット.
Definition: Keyboard.h:236
マウスの状態を表すクラス.
Definition: Mouse.h:30
int fingerCount
ジェスチャーに使った指の本数
Definition: Gesture.h:56
キーボードの状態を表すクラス.
Definition: Keyboard.h:121
void Update()
状態の更新.
Definition: Gesture.h:59
void Update()
状態の更新.
Definition: Keyboard.h:345
int StickY
ジョイスティックの縦方向入力
Definition: Joypad.h:76
ジョイパッドの状態を表すクラス.
Definition: Joypad.h:63
タッチ操作の各種ジェスチャー.
Definition: Gesture.h:12
PadCode
ゲームパッドコード.
Definition: Joypad.h:23
double pinche
ピンチ操作
Definition: Gesture.h:51
void Reset()
状態のリセット.
Definition: Mouse.h:61
double rotate
回転ジェスチャー
Definition: Gesture.h:50
void Reset()
状態をリセット.
Definition: Gesture.h:66
void Reset()
状態のリセット.
Definition: Joypad.h:126
void Update()
状態の更新.
Definition: Mouse.h:79
int StickX
ジョイスティックの横方向入力
Definition: Joypad.h:75
タッチ操作.
Definition: Touch.h:12
void Update()
状態の更新.
Definition: Joypad.h:166
int Whell
マウスの回転量
Definition: Mouse.h:48