gameactiontest.java~1~

来自「java教程第八章事例」· JAVA~1~ 代码 · 共 109 行

JAVA~1~
109
字号
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class GameActionTest extends MIDlet{

	Display display;
	MyCanvas myCanvas;

	public GameActionTest(){
		display = Display.getDisplay(this);
		myCanvas = new MyCanvas(this);
	}


	public void startApp(){
		display.setCurrent(myCanvas);
	}

	public void pauseApp(){
		
	}

	public void destroyApp(boolean unconditional){
		
	}
	
}

class MyCanvas extends Canvas implements CommandListener{

	Command exitCmd;
	int myColor;
	GameActionTest midlet;
	int X, Y, XIncrement, YIncrement;
	
	public MyCanvas(GameActionTest midlet){
		exitCmd = new Command("瞒秨", Command.EXIT, 1);
		addCommand(exitCmd);
		setCommandListener(this);
		this.midlet = midlet;
		X = getWidth()/2;
		Y = getHeight()/2;
		XIncrement = 5;
		YIncrement = 5; 
	}

	public void paint(Graphics g){
		
		g.setColor(0xFFFFFF);
		g.fillRect(0, 0, getWidth(), getHeight());
		g.setColor(0);
		if(X<0) X = 0;
		if(X > getWidth() - 10) X = getWidth() - 10;
		if(Y<0) Y = 0;
		if(Y > getHeight()) X = getHeight();
		g.drawString("("+X+","+Y+")",10,10, Graphics.TOP|Graphics.LEFT);
		g.setColor(myColor);
		g.fillArc(X, Y, 10, 10, 0, 360);
	}
		
	public void keyPressed(int keyCode){
		int gameAction = getGameAction(keyCode);
		switch(gameAction){
			case UP:
				Y -= YIncrement;
			break;
			case DOWN:
				Y += YIncrement;
			break;
			case LEFT:
				X -= XIncrement;
			break;
			case RIGHT:
				X += XIncrement;
			break;
			case FIRE:
				setColor(200, 200, 200);
			break;
			case GAME_A:
				setColor(0, 0, 255);
			break;
			case GAME_B:
				setColor(0, 255, 0);
			break;
			case GAME_C:
				setColor(255, 0, 0);
			break;
			case GAME_D:
				setColor(0, 0, 0);
			break;
			
		}
		repaint();
	}
	
	public void commandAction(Command c, Displayable d){
		if(c == exitCmd){
			midlet.destroyApp(true);
			midlet.notifyDestroyed();
		}
	}
	
	private void setColor(int r, int g, int b){
		myColor = ((r & 0xFF)<< 16)| ((g & 0xFF) << 8) | (b & 0xFF);	
	}

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?