SDL を使用するコードを Java に変換しようとしています。私はsdljavaバインディングを使用しています。
sdljava は、C データ型と Java の間のブリッジとして SWIG を使用します。に相当するものを取得するためにSDL_GetKeyState()
、sdljava は、SWIG_SDLEvent.SDL_GetKeyState()
a と呼ばれるものを返すメソッドを提供しますSWIGTYPE_p_unsigned_char
。
もちろん、Java にはunsigned char
型がなく、コンパイラがこの SWIG 型が実際に Java に対して何を表していると考えるかはわかりません。C/C++ での の通常の使用は次のSDL_GetKeyState()
ようになります。
Uint8 *ks = SDL_GetKeyState(NULL);
if ( ks[SDLK_UP] ) { /* handle Up key */ }
...ここで、SDLK_UP インデックスのような SDL キーステート値が配列に挿入されます。
ただし、次の Java コード:
SWIGTYPE_p_unsigned_char ks = SWIG_SDLEvent.SDL_GetKeyState(null);
if ( ks[SDLKeyValues.SDLK_UP] != 0) { /* handle Up key */ }
「式の型は配列型でなければなりませんが、SWIGTYPE_p_unsigned_char に解決されました」というコンパイラ エラーが発生します。
私が知りたいのは、SWIG_SDLEvent.SDL_GetKeyState() を呼び出した後、返されたものを使用して個々のキーの状態を調べる方法です。