⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mycanvas.java

📁 Java程序的一个游戏小Demo 里面包括了许多工具类 用起来很方便
💻 JAVA
字号:
package src;

import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.midlet.MIDlet;

public abstract class MyCanvas extends Canvas implements Runnable {
	protected MIDlet mid;
	protected Image buffer;//定义缓冲区
	protected Graphics g;//--缓冲区画笔
	static public int canvasW,canvasH;//定义屏幕宽高变量
	boolean is_up,is_down,is_left,is_right,is_fire;
	public MyCanvas(MIDlet mid){
		this.mid = mid;
		setFullScreenMode(true);
		canvasW = this.getWidth();//取得屏幕宽
		canvasH = this.getHeight();//取得屏幕高
//		根据屏幕宽高取得缓冲区大小
		buffer = Image.createImage(canvasW,canvasH);
		g = buffer.getGraphics();//取得缓冲区画笔
	}
	
	protected void keyPressed(int key) {
		switch(this.getGameAction(key)){
		case UP:
			is_up = true;
			break;
		case DOWN:
			is_down = true;
			break;
		case LEFT:
			is_left = true;
			break;
		case RIGHT:
			is_right = true;
			break;
		case FIRE:
			is_fire = true;
			break;
		}
	}

	protected void keyReleased(int key) {
		switch(this.getGameAction(key)){
		case UP:
			is_up = false;
			break;
		case DOWN:
			is_down = false;
			break;
		case LEFT:
			is_left = false;
			break;
		case RIGHT:
			is_right = false;
			break;
		case FIRE:
			is_fire = false;
			break;
		}
	}
	protected void exit(){
		mid.notifyDestroyed();
	}
	protected abstract void myPaint();
	protected abstract void upData();
	protected abstract void keepKey();
	
	protected void paint(Graphics arg0) {
		arg0.drawImage(buffer, 0, 0, Graphics.LEFT|Graphics.TOP);
	}

	public void run() {
		while(true){
			long time = System.currentTimeMillis();
			keepKey();
			upData();
			myPaint();
			repaint();
			time = System.currentTimeMillis() - time;
			if(time < 40){
				try {
					Thread.sleep(40 - time);
				} catch (InterruptedException e) {
				}
			}
		}
	}

}

⌨️ 快捷键说明

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