Created
August 17, 2015 15:32
-
-
Save namachan10777/5299a87b19b281ed5f3c to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
module event; | |
import derelict.sdl2.sdl; | |
import std.algorithm.iteration; | |
import std.stdio; | |
/*━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ | |
関数定義 | |
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━*/ | |
void event_update() | |
{ | |
SDL_Event e; | |
key.each!(x => x > 0? x ++ : x); | |
while (SDL_PollEvent(&e)) | |
{ | |
switch (e.type) | |
{ | |
case SDL_KEYDOWN: | |
setKey(e); | |
break; | |
case SDL_KEYUP: | |
releseKey(e); | |
break; | |
case SDL_MOUSEMOTION: | |
break; | |
case SDL_MOUSEBUTTONDOWN: | |
break; | |
case SDL_MOUSEBUTTONUP: | |
break; | |
case SDL_MOUSEWHEEL: | |
break; | |
default: | |
break; | |
} | |
} | |
} | |
const(int)[int] getKey(){ | |
const(int)[int] constKey = key; | |
return constKey; | |
} | |
void keySysInit() | |
{ | |
writeln("key system init"); | |
key[SDLK_0] = 0; | |
key[SDLK_1] = 0; | |
key[SDLK_2] = 0; | |
key[SDLK_3] = 0; | |
key[SDLK_4] = 0; | |
key[SDLK_5] = 0; | |
key[SDLK_6] = 0; | |
key[SDLK_7] = 0; | |
key[SDLK_8] = 0; | |
key[SDLK_9] = 0; | |
key[SDLK_AC_BACK] = 0; | |
key[SDLK_AC_BOOKMARKS] = 0; | |
key[SDLK_AC_FORWARD] = 0; | |
key[SDLK_AC_HOME] = 0; | |
key[SDLK_AC_REFRESH] = 0; | |
key[SDLK_AC_SEARCH] = 0; | |
key[SDLK_AC_STOP] = 0; | |
key[SDLK_AGAIN] = 0; | |
key[SDLK_ALTERASE] = 0; | |
key[SDLK_QUOTE] = 0; | |
key[SDLK_APPLICATION] = 0; | |
key[SDLK_AUDIOMUTE] = 0; | |
key[SDLK_AUDIONEXT] = 0; | |
key[SDLK_AUDIONEXT] = 0; | |
key[SDLK_AUDIOPLAY] = 0; | |
key[SDLK_AUDIOPREV] = 0; | |
key[SDLK_AUDIOSTOP] = 0; | |
key[SDLK_b] = 0; | |
key[SDLK_BACKSLASH] = 0; | |
key[SDLK_BACKSPACE] = 0; | |
key[SDLK_BRIGHTNESSDOWN] = 0; | |
key[SDLK_BRIGHTNESSUP] = 0; | |
key[SDLK_c] = 0; | |
key[SDLK_CALCULATOR] = 0; | |
key[SDLK_CANCEL] = 0; | |
key[SDLK_CAPSLOCK] = 0; | |
key[SDLK_CLEAR] = 0; | |
key[SDLK_CLEARAGAIN] = 0; | |
key[SDLK_COMMA] = 0; | |
key[SDLK_COMPUTER] = 0; | |
key[SDLK_COPY] = 0; | |
key[SDLK_CRSEL] = 0; | |
key[SDLK_CURRENCYSUBUNIT] = 0; | |
key[SDLK_CURRENCYUNIT] = 0; | |
key[SDLK_CUT] = 0; | |
key[SDLK_d] = 0; | |
key[SDLK_DECIMALSEPARATOR] = 0; | |
key[SDLK_DELETE] = 0; | |
key[SDLK_DISPLAYSWITCH] = 0; | |
key[SDLK_DOWN] = 0; | |
key[SDLK_e] = 0; | |
key[SDLK_EJECT] = 0; | |
key[SDLK_END] = 0; | |
key[SDLK_EQUALS] = 0; | |
key[SDLK_ESCAPE] = 0; | |
key[SDLK_EXECUTE] = 0; | |
key[SDLK_EXSEL] = 0; | |
key[SDLK_f] = 0; | |
key[SDLK_F1] = 0; | |
key[SDLK_F2] = 0; | |
key[SDLK_F3] = 0; | |
key[SDLK_F4] = 0; | |
key[SDLK_F5] = 0; | |
key[SDLK_F6] = 0; | |
key[SDLK_F7] = 0; | |
key[SDLK_F8] = 0; | |
key[SDLK_F9] = 0; | |
key[SDLK_F10] = 0; | |
key[SDLK_F11] = 0; | |
key[SDLK_F12] = 0; | |
key[SDLK_F13] = 0; | |
key[SDLK_F14] = 0; | |
key[SDLK_F15] = 0; | |
key[SDLK_F16] = 0; | |
key[SDLK_F17] = 0; | |
key[SDLK_F18] = 0; | |
key[SDLK_F19] = 0; | |
key[SDLK_F20] = 0; | |
key[SDLK_F21] = 0; | |
key[SDLK_F22] = 0; | |
key[SDLK_F23] = 0; | |
key[SDLK_F24] = 0; | |
key[SDLK_FIND] = 0; | |
key[SDLK_g] = 0; | |
key[SDLK_BACKQUOTE] = 0; | |
key[SDLK_h] = 0; | |
key[SDLK_AC_HOME] = 0; | |
key[SDLK_HELP] = 0; | |
key[SDLK_i] = 0; | |
key[SDLK_INSERT] = 0; | |
key[SDLK_j] = 0; | |
key[SDLK_k] = 0; | |
key[SDLK_KBDILLUMTOGGLE] = 0; | |
key[SDLK_KBDILLUMDOWN] = 0; | |
//key[SDLK_SDL_SCANCODE_KBDILLUMUP] = 0; | |
key[SDLK_KP_0] = 0; | |
key[SDLK_KP_00] = 0; | |
key[SDLK_KP_000] = 0; | |
key[SDLK_KP_1] = 0; | |
key[SDLK_KP_2] = 0; | |
key[SDLK_KP_3] = 0; | |
key[SDLK_KP_4] = 0; | |
key[SDLK_KP_5] = 0; | |
key[SDLK_KP_6] = 0; | |
key[SDLK_KP_7] = 0; | |
key[SDLK_KP_8] = 0; | |
key[SDLK_KP_9] = 0; | |
key[SDLK_KP_A] = 0; | |
key[SDLK_KP_AT] = 0; | |
key[SDLK_KP_AMPERSAND] = 0; | |
key[SDLK_KP_B] = 0; | |
key[SDLK_KP_BACKSPACE] = 0; | |
key[SDLK_KP_BINARY] = 0; | |
key[SDLK_KP_C] = 0; | |
key[SDLK_KP_COLON] = 0; | |
key[SDLK_KP_COMMA] = 0; | |
key[SDLK_KP_D] = 0; | |
key[SDLK_KP_DBLAMPERSAND] = 0; | |
key[SDLK_KP_DBLVERTICALBAR] = 0; | |
key[SDLK_KP_DECIMAL] = 0; | |
key[SDLK_KP_DIVIDE] = 0; | |
key[SDLK_KP_E] = 0; | |
key[SDLK_KP_E] = 0; | |
key[SDLK_KP_ENTER] = 0; | |
key[SDLK_KP_EQUALS] = 0; | |
key[SDLK_KP_EXCLAM] = 0; | |
key[SDLK_KP_F] = 0; | |
key[SDLK_KP_GREATER] = 0; | |
key[SDLK_KP_HASH] = 0; | |
key[SDLK_KP_HEXADECIMAL] = 0; | |
key[SDLK_KP_LEFTBRACE] = 0; | |
key[SDLK_KP_LEFTPAREN] = 0; | |
key[SDLK_KP_LESS] = 0; | |
key[SDLK_KP_MEMADD] = 0; | |
key[SDLK_KP_MEMCLEAR] = 0; | |
key[SDLK_KP_MEMDIVIDE] = 0; | |
key[SDLK_KP_MEMMULTIPLY] = 0; | |
key[SDLK_KP_MEMRECALL] = 0; | |
key[SDLK_KP_MEMSTORE] = 0; | |
key[SDLK_KP_MEMSUBTRACT] = 0; | |
key[SDLK_KP_MINUS] = 0; | |
key[SDLK_KP_MEMMULTIPLY] = 0; | |
key[SDLK_KP_OCTAL] = 0; | |
key[SDLK_KP_PERIOD] = 0; | |
key[SDLK_KP_PERCENT] = 0; | |
key[SDLK_KP_PLUS] = 0; | |
key[SDLK_KP_PLUSMINUS] = 0; | |
key[SDLK_KP_POWER] = 0; | |
key[SDLK_KP_RIGHTBRACE] = 0; | |
key[SDLK_KP_RIGHTPAREN] = 0; | |
key[SDLK_KP_SPACE] = 0; | |
key[SDLK_KP_TAB] = 0; | |
key[SDLK_KP_VERTICALBAR] = 0; | |
key[SDLK_KP_XOR] = 0; | |
key[SDLK_l] = 0; | |
key[SDLK_LALT] = 0; | |
key[SDLK_LCTRL] = 0; | |
key[SDLK_LEFT] = 0; | |
key[SDLK_LEFTBRACKET] = 0; | |
key[SDLK_LGUI] = 0; | |
key[SDLK_LSHIFT] = 0; | |
key[SDLK_m] = 0; | |
key[SDLK_MAIL] = 0; | |
key[SDLK_MEDIASELECT] = 0; | |
key[SDLK_MENU] = 0; | |
key[SDLK_MINUS] = 0; | |
key[SDLK_MODE] = 0; | |
key[SDLK_MUTE] = 0; | |
key[SDLK_n] = 0; | |
key[SDLK_NUMLOCKCLEAR] = 0; | |
key[SDLK_o] = 0; | |
key[SDLK_OUT] = 0; | |
key[SDLK_OPER] = 0; | |
key[SDLK_p] = 0; | |
key[SDLK_PAGEDOWN] = 0; | |
key[SDLK_PAGEUP] = 0; | |
key[SDLK_PASTE] = 0; | |
key[SDLK_PAUSE] = 0; | |
key[SDLK_KP_PERIOD] = 0; | |
key[SDLK_q] = 0; | |
key[SDLK_r] = 0; | |
key[SDLK_RALT] = 0; | |
key[SDLK_RCTRL] = 0; | |
key[SDLK_RETURN] = 0; | |
key[SDLK_RETURN2] = 0; | |
key[SDLK_RGUI] = 0; | |
key[SDLK_RIGHT] = 0; | |
key[SDLK_RIGHTBRACKET] = 0; | |
key[SDLK_RSHIFT] = 0; | |
key[SDLK_s] = 0; | |
key[SDLK_SCROLLLOCK] = 0; | |
key[SDLK_SELECT] = 0; | |
key[SDLK_SEMICOLON] = 0; | |
key[SDLK_SEPARATOR] = 0; | |
key[SDLK_SLASH] = 0; | |
key[SDLK_SLEEP] = 0; | |
key[SDLK_SPACE] = 0; | |
key[SDLK_STOP] = 0; | |
key[SDLK_SYSREQ] = 0; | |
key[SDLK_t] = 0; | |
key[SDLK_TAB] = 0; | |
key[SDLK_THOUSANDSSEPARATOR] = 0; | |
key[SDLK_u] = 0; | |
key[SDLK_UNDO] = 0; | |
key[SDLK_UNKNOWN] = 0; | |
key[SDLK_UP] = 0; | |
key[SDLK_v] = 0; | |
key[SDLK_VOLUMEDOWN] = 0; | |
key[SDLK_VOLUMEUP] = 0; | |
key[SDLK_w] = 0; | |
key[SDLK_WWW] = 0; | |
key[SDLK_x] = 0; | |
key[SDLK_y] = 0; | |
key[SDLK_z] = 0; | |
key[SDLK_AMPERSAND] = 0; | |
key[SDLK_ASTERISK] = 0; | |
key[SDLK_AT] = 0; | |
key[SDLK_CARET] = 0; | |
key[SDLK_COLON] = 0; | |
key[SDLK_DOLLAR] = 0; | |
key[SDLK_EXCLAIM] = 0; | |
key[SDLK_GREATER] = 0; | |
key[SDLK_KP_HASH] = 0; | |
key[SDLK_LEFTPAREN] = 0; | |
key[SDLK_LESS] = 0; | |
key[SDLK_PERCENT] = 0; | |
key[SDLK_PLUS] = 0; | |
key[SDLK_QUESTION] = 0; | |
key[SDLK_QUOTEDBL] = 0; | |
key[SDLK_RIGHTPAREN] = 0; | |
key[SDLK_UNDERSCORE] = 0; | |
} | |
/*━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ | |
補助関数定義 | |
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━*/ | |
private{ | |
int[int] key; | |
void setKey(SDL_Event e) | |
{ | |
key[e.key.keysym.sym] = 1; | |
writeln(e.key.keysym.sym); | |
} | |
void releseKey(SDL_Event e) | |
{ | |
} | |
void cntUp(T)(T[] array) | |
{ | |
array.map!(x => x > 0 ? x++ : x); | |
} | |
} | |
/*━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ | |
定数定義 | |
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━*/ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment