Changed key/keyCode handling

This commit is contained in:
francisli
2005-04-17 06:08:39 +00:00
parent d0e26f28b9
commit 5b33f39a0e
2 changed files with 31 additions and 30 deletions
+30 -30
View File
@@ -85,38 +85,38 @@ public class PCanvas extends Canvas {
protected void keyPressed(int keyCode) {
midlet.keyPressed = true;
int action = getGameAction(keyCode);
switch (action) {
case Canvas.UP:
midlet.key = PMIDlet.UP;
break;
case Canvas.DOWN:
midlet.key = PMIDlet.DOWN;
break;
case Canvas.LEFT:
midlet.key = PMIDlet.LEFT;
break;
case Canvas.RIGHT:
midlet.key = PMIDlet.RIGHT;
break;
case Canvas.FIRE:
midlet.key = PMIDlet.FIRE;
break;
default:
//// MIDP 1.0 says the KEY_ values map to ASCII values, but I've seen it
//// different on some foreign (i.e. Korean) handsets
if ((keyCode >= Canvas.KEY_NUM0) && (keyCode <= Canvas.KEY_NUM9)) {
midlet.key = (char) ('0' + (keyCode - Canvas.KEY_NUM0));
} else {
switch (keyCode) {
case Canvas.KEY_POUND:
midlet.key = '#';
//// MIDP 1.0 says the KEY_ values map to ASCII values, but I've seen it
//// different on some foreign (i.e. Korean) handsets
if ((keyCode >= Canvas.KEY_NUM0) && (keyCode <= Canvas.KEY_NUM9)) {
midlet.key = (char) ('0' + (keyCode - Canvas.KEY_NUM0));
} else {
switch (keyCode) {
case Canvas.KEY_POUND:
midlet.key = '#';
break;
case Canvas.KEY_STAR:
midlet.key = '*';
break;
default:
int action = getGameAction(keyCode);
switch (action) {
case Canvas.UP:
midlet.keyCode = PMIDlet.UP;
break;
case Canvas.KEY_STAR:
midlet.key = '*';
case Canvas.DOWN:
midlet.keyCode = PMIDlet.DOWN;
break;
}
}
case Canvas.LEFT:
midlet.keyCode = PMIDlet.LEFT;
break;
case Canvas.RIGHT:
midlet.keyCode = PMIDlet.RIGHT;
break;
case Canvas.FIRE:
midlet.keyCode = PMIDlet.FIRE;
break;
}
}
}
midlet.keyPressed();
}
+1
View File
@@ -88,6 +88,7 @@ public abstract class PMIDlet extends MIDlet implements Runnable {
protected int height;
protected char key;
protected int keyCode;
protected boolean keyPressed;
public void setup() {