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

📄 mygamecanvas_2.java

📁 《精通JAVA手机游戏与应用程序设计》随书光盘
💻 JAVA
字号:
package gameCanvas;

import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;

public class MyGameCanvas_2 extends GameCanvas implements Runnable {

	private Graphics g;

	private int width = 20;//要绘制的方块宽度

	private int height = 20;//要绘制的方块高度

	private int screenWidth = 0; //屏幕宽度

	private int screenHeight = 0; //屏幕高度

	private int drawX = 0; //要绘制的X坐标

	private int drawY = 0; //要绘制的Y坐标

	protected MyGameCanvas_2() {
		super(true);
		g = this.getGraphics();
		screenWidth = this.getWidth();
		screenHeight = this.getHeight();
		drawX = screenWidth / 2 - width / 2;
		drawY = screenHeight / 2 - height / 2;

		draw(g);

		Thread thread = new Thread(this);
		thread.start();
	}

	//绘制黑色方块
	protected void draw(Graphics g) {

		g.setColor(0xffffff);
		g.fillRect(0, 0, screenWidth, screenHeight);

		g.setColor(0, 0, 0);
		g.fillRect(drawX, drawY, 20, 20);
		flushGraphics();
	}

	public void keyPressed() {		
		int x, y;
		int keyState = getKeyStates();

		//判断上下左右键是否被按下
		if ((keyState & UP_PRESSED) != 0) {
			if (drawY - 2 > 0)
				drawY = drawY - 2;
			else
				drawY = screenHeight;

		}
		if ((keyState & DOWN_PRESSED) != 0) {
			if (drawY + 2 < screenHeight)
				drawY = drawY + 2;
			else
				drawY = 0;

		}
		if ((keyState & LEFT_PRESSED) != 0) {
			if (drawX - 2 > 0)
				drawX = drawX - 2;
			else
				drawX = screenWidth;

		}
		if ((keyState & RIGHT_PRESSED) != 0) {
			if (drawX + 2 < screenWidth)
				drawX = drawX + 2;
			else
				drawX = 0;
		}

	}
   
	public void run() {
		//无限循环检测键盘的输入
		while (true) {
			keyPressed();
			draw(g);
			try {
				Thread.sleep(20);
			} catch (InterruptedException ie) {
			}
		}
	}

}

⌨️ 快捷键说明

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