最後の仕上げです。使い易いようにキーボード入力の調整をします。
SDL_androidkeyboard.c
if (scancode == SDL_SCANCODE_UNKNOWN) { __android_log_print(ANDROID_LOG_INFO, "SDL", "Unknown keycode %d", keycode); scancode = SDL_SCANCODE_SLASH; }
event.c
static int now_alt = 0; /*---------------------------------------------------------------------- * SDLK_xxx → KEY88_xxx 変換テーブル (デフォルト) *----------------------------------------------------------------------*/ static const int keysym2key88_default[ SDLK_LAST ] = { 0, /* SDLK_UNKNOWN = 0, */ (省略) // KEY88_KP_MULTIPLY, /* SDLK_KP_MULTIPLY = 268, */ KEY88_STOP, /* SDLK_KP_MULTIPLY = 268, */ (省略) const T_REMAPPING remapping_x11_106[] = { #ifdef _IS01 { 1, SDLK_v, KEY88_v, }, { 2, 1073741902, KEY88_F6, }, /* カタひら */ { 2, 1073742049, KEY88_SHIFTL, }, { 2, 1073741903, KEY88_RIGHT, }, { 2, 1073741905, KEY88_DOWN, }, { 2, 1073741904, KEY88_LEFT, }, { 2, 1073741906, KEY88_UP, }, { 2, 1073742053, KEY88_F5, }, { 2, 1073741899, KEY88_GRAPH, }, { 2, 1073741942, KEY88_SYS_MENU, }, #else { 1, SDLK_LSUPER, KEY88_KANA, }, { 1, SDLK_RALT, KEY88_ZENKAKU, }, /*{ 1, SDLK_RCTRL, KEY88_UNDERSCORE, },*/ { 1, SDLK_MENU, KEY88_SYS_MENU, }, { 2, 49, KEY88_ZENKAKU, }, /* 半角全角 */ { 2, 133, KEY88_YEN, }, /* \ | */ { 2, 123, KEY88_UNDERSCORE, }, /* \ _ ロ */ { 2, 131, KEY88_KETTEI, }, { 2, 129, KEY88_HENKAN, }, { 2, 120, KEY88_KANA, }, /* カタひら */ #endif { 0, 0, 0, }, }; (省略) case SDL_KEYDOWN: /*------------------------------------------*/ case SDL_KEYUP: keysym = E.key.keysym.sym; #ifdef _IS01 if (keysym==1073742094) keysym=SDLK_ESCAPE; if (keysym==SDLK_LALT) now_alt++; if (now_alt) { if (keysym==SDLK_0) keysym=SDLK_CARET; if (keysym==SDLK_q) keysym=SDLK_TAB; if (keysym==SDLK_p) keysym=SDLK_AT; if (keysym==SDLK_MINUS) keysym=SDLK_BACKSLASH; if (keysym==SDLK_l) keysym=SDLK_SEMICOLON; if (keysym==SDLK_SLASH) keysym=SDLK_COLON; if (keysym==SDLK_COMMA) keysym=SDLK_LEFTBRACKET; if (keysym==SDLK_PERIOD) keysym=SDLK_RIGHTBRACKET; if (now_alt > 3) now_alt=0; } #endif
アドベンチャーゲームをやるには、ローマ字入力の機能が素晴らしいと思いました。あとは移植性に優れていますね。