Game Development Reference
In-Depth Information
// In QuakeEvents.java
public static final int K_TAB = 9;
public static final int K_ENTER = 13;
public static final int K_ESCAPE = 27;
public static final int K_SPACE = 32;
// more ASCII keys...
//key maps for motorola droid
private static final int[] sKeyCodeToQuakeCode = {
'$', K_ESCAPE, '$', '$', K_ESCAPE, K_CTRL, '$', '0', // digits 0..7
'1', '2', '3', '4', '5', '6', '7', '8', // digits 8..15
'9', '$', '$', K_UPARROW, K_DOWNARROW
, K_LEFTARROW, K_RIGHTARROW, K_ENTER, // digits 16..23
'$', '$', '$', K_HOME, '$', 'a', 'b', 'c', // digits 24..31
'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', // 32..39
'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', // 40..47
't', 'u', 'v', 'w', 'x', 'y', 'z', ',', // 48..55
'.', K_ALT, K_ALT, K_SHIFT, K_SHIFT, K_TAB, ' ', '$', // 56..63
'$', '$', K_ENTER, K_BACKSPACE, '`', '-', '=', '[', // 64..71
']', '\\', ';', '\'', '/', K_CTRL, '#', '$', // 72..79
K_CTRL, '$', K_ESCAPE, '$', K_SPACE // 80..84
};
public static boolean onKeyDown(int keyCode, KeyEvent event) {
try {
Natives.keyPress(keyCodeToQuakeCode(keyCode));
} catch (UnsatisfiedLinkError e) {
Log.d(TAG, e.toString());
}
return true;
}
public static boolean onKeyUp(int keyCode, KeyEvent event) {
try {
Natives.keyRelease(keyCodeToQuakeCode(keyCode));
} catch (UnsatisfiedLinkError e) {
Log.d(TAG, e.toString());
}
}
// In jni_quake.c
// engine key event processor
extern void Key_Event (int key, qboolean down);
JNIEXPORT jint JNICALL Java_quake_jni_Natives_keyPress
(JNIEnv * env, jclass cls, jint key)
{
Key_Event((int)key, 1);
return key;
}
Search WWH ::




Custom Search