Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save namachan10777/5299a87b19b281ed5f3c to your computer and use it in GitHub Desktop.
Save namachan10777/5299a87b19b281ed5f3c to your computer and use it in GitHub Desktop.
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);
}
}
/*━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
定数定義
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━*/
@namachan10777
Copy link
Author

ありがとうございます!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment