2 #include <Multimedia/SDX.h>
3 #include <Multimedia/Keyboard.h>
4 #include <Multimedia/Mouse.h>
5 #include <Multimedia/Joypad.h>
36 Input::mouse.Update();
41 static void GetState(SDL_Event &event)
50 switch (event.key.keysym.sym)
52 case SDLK_BACKSPACE: key.press[(int)KeyCode::Back] = upState;
break;
53 case SDLK_TAB: key.press[(int)KeyCode::Tab] = upState;
break;
54 case SDLK_RETURN: key.press[(int)KeyCode::Return] = upState;
break;
55 case SDLK_LSHIFT: key.press[(int)KeyCode::LShift] = upState;
break;
56 case SDLK_RSHIFT: key.press[(int)KeyCode::RShift] = upState;
break;
57 case SDLK_LCTRL: key.press[(int)KeyCode::LControl] = upState;
break;
58 case SDLK_RCTRL: key.press[(int)KeyCode::RControl] = upState;
break;
59 case SDLK_ESCAPE: key.press[(int)KeyCode::Escape] = upState;
break;
60 case SDLK_SPACE: key.press[(int)KeyCode::Space] = upState;
break;
61 case SDLK_PAGEUP: key.press[(int)KeyCode::PageUp] = upState;
break;
62 case SDLK_PAGEDOWN: key.press[(int)KeyCode::PageDown] = upState;
break;
63 case SDLK_END: key.press[(int)KeyCode::End] = upState;
break;
64 case SDLK_HOME: key.press[(int)KeyCode::Home] = upState;
break;
66 key.press[(int)KeyCode::Left] = upState;
67 pad.press[(int)PadCode::Left] = upState;
70 key.press[(int)KeyCode::Up] = upState;
71 pad.press[(int)PadCode::Up] = upState;
74 key.press[(int)KeyCode::Right] = upState;
75 pad.press[(int)PadCode::Right] = upState;
78 key.press[(int)KeyCode::Down] = upState;
79 pad.press[(int)PadCode::Down] = upState;
81 case SDLK_INSERT: key.press[(int)KeyCode::Insert] = upState;
break;
82 case SDLK_DELETE: key.press[(int)KeyCode::Delete] = upState;
break;
84 case SDLK_MINUS: key.press[(int)KeyCode::Minus] = upState;
break;
87 case SDLK_PERIOD: key.press[(int)KeyCode::Period] = upState;
break;
88 case SDLK_SLASH: key.press[(int)KeyCode::Slash] = upState;
break;
89 case SDLK_LALT: key.press[(int)KeyCode::LAlt] = upState;
break;
90 case SDLK_RALT: key.press[(int)KeyCode::RAlt] = upState;
break;
91 case SDLK_SCROLLLOCK: key.press[(int)KeyCode::Scroll] = upState;
break;
92 case SDLK_SEMICOLON: key.press[(int)KeyCode::Semicolon] = upState;
break;
93 case SDLK_COLON: key.press[(int)KeyCode::Colon] = upState;
break;
94 case SDLK_LEFTBRACKET: key.press[(int)KeyCode::LBracket] = upState;
break;
95 case SDLK_RIGHTBRACKET: key.press[(int)KeyCode::RBracket] = upState;
break;
96 case SDLK_AT: key.press[(int)KeyCode::At] = upState;
break;
97 case SDLK_BACKSLASH: key.press[(int)KeyCode::Backslash] = upState;
break;
98 case SDLK_COMMA: key.press[(int)KeyCode::Comma] = upState;
break;
99 case SDLK_CAPSLOCK: key.press[(int)KeyCode::Capslock] = upState;
break;
100 case SDLK_PAUSE: key.press[(int)KeyCode::Pause] = upState;
break;
102 case SDLK_KP_0: key.press[(int)KeyCode::Numpad0] = upState;
break;
103 case SDLK_KP_1: key.press[(int)KeyCode::Numpad1] = upState;
break;
104 case SDLK_KP_2: key.press[(int)KeyCode::Numpad2] = upState;
break;
105 case SDLK_KP_3: key.press[(int)KeyCode::Numpad3] = upState;
break;
106 case SDLK_KP_4: key.press[(int)KeyCode::Numpad4] = upState;
break;
107 case SDLK_KP_5: key.press[(int)KeyCode::Numpad5] = upState;
break;
108 case SDLK_KP_6: key.press[(int)KeyCode::Numpad6] = upState;
break;
109 case SDLK_KP_7: key.press[(int)KeyCode::Numpad7] = upState;
break;
110 case SDLK_KP_8: key.press[(int)KeyCode::Numpad8] = upState;
break;
111 case SDLK_KP_9: key.press[(int)KeyCode::Numpad9] = upState;
break;
112 case SDLK_ASTERISK: key.press[(int)KeyCode::Multiply] = upState;
break;
113 case SDLK_KP_PLUS: key.press[(int)KeyCode::Add] = upState;
break;
114 case SDLK_KP_MINUS: key.press[(int)KeyCode::Subtract] = upState;
break;
115 case SDLK_KP_PERIOD: key.press[(int)KeyCode::Decimal] = upState;
break;
116 case SDLK_KP_DIVIDE: key.press[(int)KeyCode::Divide] = upState;
break;
117 case SDLK_KP_ENTER: key.press[(int)KeyCode::NUMPADEnter] = upState;
break;
119 case SDLK_F1: key.press[(int)KeyCode::F1] = upState;
break;
120 case SDLK_F2: key.press[(int)KeyCode::F2] = upState;
break;
121 case SDLK_F3: key.press[(int)KeyCode::F3] = upState;
break;
122 case SDLK_F4: key.press[(int)KeyCode::F4] = upState;
break;
123 case SDLK_F5: key.press[(int)KeyCode::F5] = upState;
break;
124 case SDLK_F6: key.press[(int)KeyCode::F6] = upState;
break;
125 case SDLK_F7: key.press[(int)KeyCode::F7] = upState;
break;
126 case SDLK_F8: key.press[(int)KeyCode::F8] = upState;
break;
127 case SDLK_F9: key.press[(int)KeyCode::F9] = upState;
break;
128 case SDLK_F10: key.press[(int)KeyCode::F10] = upState;
break;
129 case SDLK_F11: key.press[(int)KeyCode::F11] = upState;
break;
130 case SDLK_F12: key.press[(int)KeyCode::F12] = upState;
break;
133 key.press[(int)KeyCode::A] = upState;
134 pad.press[(int)PadCode::Button5] = upState;
136 case SDLK_b: key.press[(int)KeyCode::B] = upState;
break;
138 key.press[(int)KeyCode::C] = upState;
139 pad.press[(int)PadCode::Button3] = upState;
142 key.press[(int)KeyCode::D] = upState;
143 pad.press[(int)PadCode::Button7] = upState;
145 case SDLK_e: key.press[(int)KeyCode::E] = upState;
break;
147 key.press[(int)KeyCode::F] = upState;
148 pad.press[(int)PadCode::Button8] = upState;
150 case SDLK_g: key.press[(int)KeyCode::G] = upState;
break;
151 case SDLK_h: key.press[(int)KeyCode::H] = upState;
break;
152 case SDLK_i: key.press[(int)KeyCode::I] = upState;
break;
153 case SDLK_j: key.press[(int)KeyCode::J] = upState;
break;
154 case SDLK_k: key.press[(int)KeyCode::K] = upState;
break;
155 case SDLK_l: key.press[(int)KeyCode::L] = upState;
break;
156 case SDLK_m: key.press[(int)KeyCode::M] = upState;
break;
157 case SDLK_n: key.press[(int)KeyCode::N] = upState;
break;
158 case SDLK_o: key.press[(int)KeyCode::O] = upState;
break;
159 case SDLK_p: key.press[(int)KeyCode::P] = upState;
break;
160 case SDLK_q: key.press[(int)KeyCode::Q] = upState;
break;
161 case SDLK_r: key.press[(int)KeyCode::R] = upState;
break;
163 key.press[(int)KeyCode::S] = upState;
164 pad.press[(int)PadCode::Button6] = upState;
166 case SDLK_t: key.press[(int)KeyCode::T] = upState;
break;
167 case SDLK_u: key.press[(int)KeyCode::U] = upState;
break;
169 key.press[(int)KeyCode::V] = upState;
170 pad.press[(int)PadCode::Button4] = upState;
172 case SDLK_w: key.press[(int)KeyCode::W] = upState;
break;
174 key.press[(int)KeyCode::X] = upState;
175 pad.press[(int)PadCode::Button2] = upState;
177 case SDLK_y: key.press[(int)KeyCode::Y] = upState;
break;
179 key.press[(int)KeyCode::Z] = upState;
180 pad.press[(int)PadCode::Button1] = upState;
182 case SDLK_0: key.press[(int)KeyCode::_0] = upState;
break;
183 case SDLK_1: key.press[(int)KeyCode::_1] = upState;
break;
184 case SDLK_2: key.press[(int)KeyCode::_2] = upState;
break;
185 case SDLK_3: key.press[(int)KeyCode::_3] = upState;
break;
186 case SDLK_4: key.press[(int)KeyCode::_4] = upState;
break;
187 case SDLK_5: key.press[(int)KeyCode::_5] = upState;
break;
188 case SDLK_6: key.press[(int)KeyCode::_6] = upState;
break;
189 case SDLK_7: key.press[(int)KeyCode::_7] = upState;
break;
190 case SDLK_8: key.press[(int)KeyCode::_8] = upState;
break;
191 case SDLK_9: key.press[(int)KeyCode::_9] = upState;
break;
194 case SDL_MOUSEBUTTONUP:
196 case SDL_MOUSEBUTTONDOWN:
197 switch (event.button.button)
199 case SDL_BUTTON_LEFT:mouse.press[(int)MouseCode::Left] = upState;
break;
200 case SDL_BUTTON_RIGHT:mouse.press[(int)MouseCode::Right] = upState;
break;
201 case SDL_BUTTON_MIDDLE:mouse.press[(int)MouseCode::Middle] = upState;
break;
202 case SDL_BUTTON_X1:mouse.press[(int)MouseCode::_4] = upState;
break;
203 case SDL_BUTTON_X2:mouse.press[(int)MouseCode::_5] = upState;
break;
206 case SDL_JOYAXISMOTION:
208 if (event.jaxis.axis == 0)
210 pad.StickX =
event.jaxis.value;
211 if (event.jaxis.value < -0x7000) pad.press[(int)PadCode::Left] =
true;
212 if (event.jaxis.value > 0x7000) pad.press[(int)PadCode::Right] =
true;
215 if (event.jaxis.axis == 1)
217 pad.StickY =
event.jaxis.value;
218 if (event.jaxis.value < -0x7000) pad.press[(int)PadCode::Up] =
true;
219 if (event.jaxis.value > 0x7000) pad.press[(int)PadCode::Down] =
true;
222 case SDL_JOYHATMOTION:
223 switch (event.jhat.value)
225 case SDL_HAT_UP:pad.press[(int)PadCode::Up] =
true;
break;
226 case SDL_HAT_LEFT:pad.press[(int)PadCode::Left] =
true;
break;
227 case SDL_HAT_DOWN:pad.press[(int)PadCode::Down] =
true;
break;
228 case SDL_HAT_RIGHT:pad.press[(int)PadCode::Right] =
true;
break;
231 case SDL_JOYBUTTONUP:
233 case SDL_JOYBUTTONDOWN:
234 pad.press[
event.jbutton.button] = upState;
241 static bool Text(
int x,
int y,
int maxLength,
char *str ,
int isEscCancel ,
bool isSingleOnly =
false)
247 return (DxLib::KeyInputString(x, y, maxLength, str, isEscCancel) == 1);
250 return ( DxLib::KeyInputSingleCharString( x , y ,maxLength , str , isEscCancel ) == 1 );
258 static int Number(
int x,
int y,
int min,
int max,
int isEscCancel)
264 return DxLib::KeyInputNumber(x, y, max, min, isEscCancel);
271 static bool StartTextMode(
int 最大文字数 ,
bool ESCキャンセル可能フラグ ,
bool 半角文字限定フラグ ,
bool 数値入力限定フラグ )
275 if (handle != NULL_HANDLE)
277 handle = DxLib::MakeKeyInput(最大文字数, ESCキャンセル可能フラグ, 半角文字限定フラグ, 数値入力限定フラグ);
279 DxLib::SetActiveKeyInput( handle );
289 return DxLib::CheckKeyInput( handle );
299 DxLib::DrawKeyInputString( X座標 , Y座標 , handle );
309 DxLib::SetKeyInputString(文字列, handle);
317 DxLib::SetKeyInputNumber(数値, handle);
327 return !GetKeyInputString(出力バッファ, handle);
350 return DxLib::SetKeyInputStringColor