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

しまったタブ幅大きすぎた。

@alphaKAI
Copy link

[SDLK_0, SDLK_1, SDLK_2, SDLK_3, SDLK_4, SDLK_5, SDLK_6, SDLK_7, SDLK_8, SDLK_9, SDLK_AC_BACK, SDLK_AC_BOOKMARKS, SDLK_AC_FORWARD, SDLK_AC_HOME, SDLK_AC_REFRESH, SDLK_AC_SEARCH, SDLK_AC_STOP, SDLK_AGAIN, SDLK_ALTERASE, SDLK_QUOTE, SDLK_APPLICATION, SDLK_AUDIOMUTE, SDLK_AUDIONEXT, SDLK_AUDIONEXT, SDLK_AUDIOPLAY, SDLK_AUDIOPREV, SDLK_AUDIOSTOP, SDLK_b, SDLK_BACKSLASH, SDLK_BACKSPACE, SDLK_BRIGHTNESSDOWN, SDLK_BRIGHTNESSUP, SDLK_c, SDLK_CALCULATOR, SDLK_CANCEL, SDLK_CAPSLOCK, SDLK_CLEAR, SDLK_CLEARAGAIN, SDLK_COMMA, SDLK_COMPUTER, SDLK_COPY, SDLK_CRSEL, SDLK_CURRENCYSUBUNIT, SDLK_CURRENCYUNIT, SDLK_CUT, SDLK_d, SDLK_DECIMALSEPARATOR, SDLK_DELETE, SDLK_DISPLAYSWITCH, SDLK_DOWN, SDLK_e, SDLK_EJECT, SDLK_END, SDLK_EQUALS, SDLK_ESCAPE, SDLK_EXECUTE, SDLK_EXSEL, SDLK_f, SDLK_F1, SDLK_F2, SDLK_F3, SDLK_F4, SDLK_F5, SDLK_F6, SDLK_F7, SDLK_F8, SDLK_F9, SDLK_F10, SDLK_F11, SDLK_F12, SDLK_F13, SDLK_F14, SDLK_F15, SDLK_F16, SDLK_F17, SDLK_F18, SDLK_F19, SDLK_F20, SDLK_F21, SDLK_F22, SDLK_F23, SDLK_F24, SDLK_FIND, SDLK_g, SDLK_BACKQUOTE, SDLK_h, SDLK_AC_HOME, SDLK_HELP, SDLK_i, SDLK_INSERT, SDLK_j, SDLK_k, SDLK_KBDILLUMTOGGLE, SDLK_KBDILLUMDOWN,//SDLK_SDL_SCANCODE_KBDILLUMUP, SDLK_KP_0, SDLK_KP_00, SDLK_KP_000, SDLK_KP_1, SDLK_KP_2, SDLK_KP_3, SDLK_KP_4, SDLK_KP_5, SDLK_KP_6, SDLK_KP_7, SDLK_KP_8, SDLK_KP_9, SDLK_KP_A, SDLK_KP_AT, SDLK_KP_AMPERSAND, SDLK_KP_B, SDLK_KP_BACKSPACE, SDLK_KP_BINARY, SDLK_KP_C, SDLK_KP_COLON, SDLK_KP_COMMA, SDLK_KP_D, SDLK_KP_DBLAMPERSAND, SDLK_KP_DBLVERTICALBAR, SDLK_KP_DECIMAL, SDLK_KP_DIVIDE, SDLK_KP_E, SDLK_KP_E, SDLK_KP_ENTER, SDLK_KP_EQUALS, SDLK_KP_EXCLAM, SDLK_KP_F, SDLK_KP_GREATER, SDLK_KP_HASH, SDLK_KP_HEXADECIMAL, SDLK_KP_LEFTBRACE, SDLK_KP_LEFTPAREN, SDLK_KP_LESS, SDLK_KP_MEMADD, SDLK_KP_MEMCLEAR, SDLK_KP_MEMDIVIDE, SDLK_KP_MEMMULTIPLY, SDLK_KP_MEMRECALL, SDLK_KP_MEMSTORE, SDLK_KP_MEMSUBTRACT, SDLK_KP_MINUS, SDLK_KP_MEMMULTIPLY, SDLK_KP_OCTAL, SDLK_KP_PERIOD, SDLK_KP_PERCENT, SDLK_KP_PLUS, SDLK_KP_PLUSMINUS, SDLK_KP_POWER, SDLK_KP_RIGHTBRACE, SDLK_KP_RIGHTPAREN, SDLK_KP_SPACE, SDLK_KP_TAB, SDLK_KP_VERTICALBAR, SDLK_KP_XOR, SDLK_l, SDLK_LALT, SDLK_LCTRL, SDLK_LEFT, SDLK_LEFTBRACKET, SDLK_LGUI, SDLK_LSHIFT, SDLK_m, SDLK_MAIL, SDLK_MEDIASELECT, SDLK_MENU, SDLK_MINUS, SDLK_MODE, SDLK_MUTE, SDLK_n, SDLK_NUMLOCKCLEAR, SDLK_o, SDLK_OUT, SDLK_OPER, SDLK_p, SDLK_PAGEDOWN, SDLK_PAGEUP, SDLK_PASTE, SDLK_PAUSE, SDLK_KP_PERIOD, SDLK_q, SDLK_r, SDLK_RALT, SDLK_RCTRL, SDLK_RETURN, SDLK_RETURN2, SDLK_RGUI, SDLK_RIGHT, SDLK_RIGHTBRACKET, SDLK_RSHIFT, SDLK_s, SDLK_SCROLLLOCK, SDLK_SELECT, SDLK_SEMICOLON, SDLK_SEPARATOR, SDLK_SLASH, SDLK_SLEEP, SDLK_SPACE, SDLK_STOP, SDLK_SYSREQ, SDLK_t, SDLK_TAB, SDLK_THOUSANDSSEPARATOR, SDLK_u, SDLK_UNDO, SDLK_UNKNOWN, SDLK_UP, SDLK_v, SDLK_VOLUMEDOWN, SDLK_VOLUMEUP, SDLK_w, SDLK_WWW, SDLK_x, SDLK_y, SDLK_z, SDLK_AMPERSAND, SDLK_ASTERISK, SDLK_AT, SDLK_CARET, SDLK_COLON, SDLK_DOLLAR, SDLK_EXCLAIM, SDLK_GREATER, SDLK_KP_HASH, SDLK_LEFTPAREN, SDLK_LESS, SDLK_PERCENT, SDLK_PLUS, SDLK_QUESTION, SDLK_QUOTEDBL, SDLK_RIGHTPAREN, SDLK_UNDERSCORE].each!(e => key[e] = 0);

@namachan10777
Copy link
Author

ありがとうございます!

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