See the code below:
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Graphics;
import javax.microedition.midlet.MIDlet;
public class KeyAnimation extends MIDlet implements CommandListener{
private Display display;
protected boolean started;
private Command exitCommand;
protected void startApp() {
//for debugging
System.out.println("I'm starting!!! - " + started);
if (!started) {
display = Display.getDisplay(this);
Canvas canvas = new KeyFinderCanvas();
exitCommand = new Command("Exit", Command.EXIT, 0);
canvas.addCommand(exitCommand);
canvas.setCommandListener(this);
display.setCurrent(canvas);
started = true;
System.out.println("Application Started! Yay! - " + started);
}
}
protected void pauseApp() {
}
protected void destroyApp(boolean unconditional) {
}
public void commandAction(Command c, Displayable d) {
if (c == exitCommand) {
// Exit. No need to call destroyApp
// because it is empty.
notifyDestroyed();
}
}
}
//KeyFinderCanvas is a separate canvas which displays keys and codes
class KeyFinderCanvas extends Canvas {
static int[] keyCodes = {KEY_NUM0, KEY_NUM1, KEY_NUM2, KEY_NUM3, KEY_NUM4,
KEY_NUM5, KEY_NUM6, KEY_NUM7, KEY_NUM8, KEY_NUM9,
KEY_POUND, KEY_STAR};
static String[] keyNames = {"KEY_NUM0", "KEY_NUM1", "KEY_NUM2", "KEY_NUM3", "KEY_NUM4",
"KEY_NUM5", "KEY_NUM6", "KEY_NUM7", "KEY_NUM8", "KEY_NUM9",
"KEY_POUND", "KEY_STAR"};
static int[] gameActions = {
UP, DOWN, LEFT, RIGHT, FIRE,
GAME_A, GAME_B, GAME_C, GAME_D};
static String[] gameNames = {
"UP", "DOWN", "LEFT", "RIGHT", "FIRE",
"GAME_A", "GAME_B", "GAME_C", "GAME_D" };
int lastKeyCode = 0;
int lastX;
int lastY;
boolean pointer;
protected void keyPressed(int keyCode) {
lastKeyCode = keyCode;
repaint();
}
protected void keyRepeated(int keyCode) {
lastKeyCode = keyCode;
repaint();
}
protected void keyReleased(int keyCode) {
lastKeyCode = 0;
//repaint();
}
protected void pointerPressed(int x, int y) {
lastX = x;
lastY = y;
pointer = true;
repaint();
}
protected void pointerDragged(int x, int y) {
lastX = x;
lastY = y;
pointer = true;
repaint();
}
protected void pointerReleased(int x, int y) {
pointer = false;
repaint();
}
protected void paint(Graphics g) {
g.setColor(0xffffff);
//this is not smart, instead of doing this - what would you do?
g.fillRect(0, 0, getWidth(), getHeight());
g.setColor(0);
if (lastKeyCode != 0) {
String keyText = "keyCode " + lastKeyCode;
String keyName = null;
// See if it is a standard key
for (int i = 0; i < keyCodes.length; i++) {
if (lastKeyCode == keyCodes[i]) {
keyName = keyNames[i];
break;
}
}
if (keyName == null) {
// See if it is a game action
for (int i = 0; i < gameActions.length; i++) {
if (lastKeyCode == getKeyCode(gameActions[i])) {
keyName = gameNames[i];
break;
}
}
}
// g.drawString(keyText, getWidth()/2, getHeight()/2,
// Graphics.BASELINE|Graphics.HCENTER);
// if (keyName != null) {
// g.drawString(keyName, getWidth()/2, getHeight()/2 + g.getFont().getHeight(),
// Graphics.BASELINE|Graphics.HCENTER);
// }
else if (pointer) {
g.drawString("(" + lastX + ", " + lastY + ")", getWidth()/2, getHeight()/2,
Graphics.BASELINE|Graphics.HCENTER);
}
// int x1 = 0;
// int y1 = 0;
if(lastKeyCode == 49) {
g.setColor(30, 150,150);
for(int moveX = 0; moveX< getWidth(); moveX+=20){
g.fillRect(moveX,20,10,getHeight());
if(moveX == getWidth() ){
//moveX = 0;
System.out.println("moveX = " + moveX);
repaint();
break;
}
}
System.out.println("drawing No.1 ");
}
else if(lastKeyCode == 50) {
g.setColor(30, 150,150);
for(int moveX = 0; moveX< 300; moveX+=20){
g.fillArc(20,10,90,100,270, moveX);
repaint();
if(moveX == 300 ){
//moveX = 0;
System.out.println("moveX = " + moveX);
break;
}
}
System.out.println("drawing No.1 ");
//System.out.println("this is testing");
}
}
}
}
CodeTest
Tuesday, September 25, 2007Posted by Unknown at 3:56 PM
Subscribe to:
Post Comments (Atom)
0 comments:
Post a Comment