📄 movecanvas.java.svn-base
字号:
package opusmicro.demos.game;
import java.util.Vector;
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Graphics;
import javax.microedition.midlet.MIDletStateChangeException;
public class MoveCanvas extends Canvas implements CommandListener{
private int x;
private int y;
int w, h;
// private byte[] keyCode;
// private int index;
Vector keyCode = new Vector();
private Command exit;
private MoveMIDlet md;
private Rectangle obj;
private LogCanvas lc;
public MoveCanvas(MoveMIDlet md) {
this.md =md;
init();
}
private void init(){
exit = new Command("Exit",Command.EXIT,0);
addCommand(exit);
setCommandListener(this);
// keyCode = new byte[2];
w = getWidth();
h = getHeight();
obj = new Rectangle(this);
x = w/2-obj.recW/2;
y = h/2-obj.recH/2;
obj.setLocation(x, y);
lc = new LogCanvas(this,md);
// lc.log(LogCanvas.INFO, "Rectangle x="+obj.x+" y="+obj.y);
}
public void keyPressed(int key) {
start(key);
if ( !handleFunKey()) {
obj.handleEvent(Rectangle.EVENT_KEY_PRESSED, key);
}
}
public void keyReleased(int key) {
if ( !handleFunKey()) {
obj.handleEvent(Rectangle.EVENT_KEY_RELEASED, key);
lc.log(LogCanvas.DEBUG, "Rectangle x="+obj.x+" y="+obj.y);
}
}
public void start(int keyCode){
// this.keyCode[index] = (byte) keyCode;
// index = (byte) ((index + 1) % this.keyCode.length);
if(this.keyCode.size()>1){
this.keyCode.removeElement(this.keyCode.firstElement());
}
this.keyCode.addElement(new Integer(keyCode));
// System.out.println("keCode.size "+this.keyCode.size());
}
protected void paint(Graphics g) {
g.setColor(-1);
g.fillRect(0, 0, w, h);
obj.paint(g);
}
private boolean handleFunKey(){
byte[] temp = new byte[2];
for(int i=0;i<keyCode.size();i++){
String s = String.valueOf(this.keyCode.elementAt(i));
temp[i] = (byte) Integer.parseInt(s);
}
// byte[] temp = keyCode;
// System.out.println("temp[0]= "+temp[0]+" temp[1]= " +temp[1]);
// if (( temp[1] == Canvas.KEY_STAR && temp[0]== Canvas.KEY_NUM9) || ( temp[0] == Canvas.KEY_STAR && temp[1]== Canvas.KEY_NUM9)) {
if ( (temp[1]== Canvas.KEY_NUM9) && (temp[0] == Canvas.KEY_STAR)) {
// keyCode[0]=0;
// keyCode[1]=0;
this.keyCode.removeAllElements();
obj.setLocation(x, y);
repaint();
lc.log(LogCanvas.INFO, "re-initialize rectangle to XXX YYY");
return true;
// }
}
for ( int i = 0 ; i < temp.length ; i++) {
if(temp[i]==Canvas.KEY_POUND){
// keyCode[i] = 0;
this.keyCode.removeElementAt(i);
md.display.setCurrent(lc);
lc.log(LogCanvas.INFO, "switch screen to logCanvas xxxxxxxx");
repaint();
return true;
}
}
return false;
}
public void commandAction(Command c, Displayable d) {
if(c==exit){
obj.isKeepGoing = false;
try {
md.notifyDestroyed();
md.destroyApp(true);
}
catch (MIDletStateChangeException e) {
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -