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

📄 numbercanvasrun.java

📁 用J2ME开发的一个手机数字游戏。既养眼又练眼神
💻 JAVA
字号:
import javax.microedition.lcdui.*;
import java.util.*;

public class NumberCanvasRun extends Canvas implements Runnable {
	Image bg0; // 背景,像素大小240*291
	Image bg1; // 前景,像素大小240*291
	Image over; // gameOver,像素大小240*291
	Image mm; // 养眼美眉,像素大小1440*291
	Image[] numberig = new Image[10]; // 写在落叶上的数字
	Graphics g;
	int i = 0, n, xn, yn, xmm;
	static Random ran = new Random();
	boolean b;
	//正确按键计数器,连续一百次按对键,游戏进入game over界面
    int k = 0;
	public NumberCanvasRun() {
		try {
			bg0 = Image.createImage("/bg0.png");
			bg1 = Image.createImage("/bg1.png");
			mm = Image.createImage("/mm.png");
			over = Image.createImage("/over.png");
			for (i = 0; i < 10; i++) {
				numberig[i] = Image.createImage("/number" + i + ".png");
			}
			Thread td = new Thread(this);
			td.start();
		} catch (Exception e) {
		}
	}

	protected void paint(Graphics g) {
		if (b) {
			g.drawImage(over, 0, 0, Graphics.LEFT | Graphics.TOP);
		} else {
			g.drawImage(bg0, 0, 0, Graphics.LEFT | Graphics.TOP);
			g.drawImage(mm, xmm, 0, Graphics.LEFT | Graphics.TOP);
			g.drawImage(bg1, 0, 0, Graphics.LEFT | Graphics.TOP);
			g.drawImage(numberig[n], xn, yn, Graphics.LEFT | Graphics.TOP);
		}
	}

	public void run() {
		try {
			n = ran.nextInt(10);
			xn = ran.nextInt(230) + 5;
			while (true) {
				// Thread.sleep(100); // 非精确延时
				repaint();
				long start = System.currentTimeMillis();
				// 数字移动轨迹限制
				yn += 10;
				if (yn >= 291) {
					yn = 0;
					b = true;
				}
				int lable = ran.nextInt(4);
				switch (lable) {
				case 0:
					if (xn <= 8) {
						lable = 2;
					}
					if (xn >= 232) {
						lable = 3;
					}
					xn += 8;
					break;
				case 1:
					if (xn <= 5) {
						xn += 15;
						lable = 2;
					}
					if (xn >= 230) {
						xn -= 15;
						lable = 3;
					}
					xn -= 8;
					break;
				case 2:
					if (xn >= 230) {
						xn -= 15;
						lable = 3;
					}
					xn += 12;
					break;
				case 3:
					if (xn <= 5) {
						xn += 15;
						lable = 2;
					}
					xn -= 12;
					break;
				}
				// 中层图片移动控制
				xmm -= 4;
				if (xmm <= -1200) {
					xmm = 0;
				}
				repaint();
				long end = System.currentTimeMillis();
				if (end - start < 100) {
					Thread.sleep(100 - (end - start));
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public void keyPressed(int keyCode) {
		if (keyCode - 48 != n || k == 99) {
			b = true;
			k = 0;
		} else {
			k++;
			yn = 0;
			n = ran.nextInt(10);
		}
		if (keyCode == -6) {
			b = false;
			yn = 0;
		}
		if (keyCode == -7) {
			NumberMidlet.quitApp();
		}
	}
}

⌨️ 快捷键说明

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