optioncanvas.java

来自「使用java 开发的手机小游戏」· Java 代码 · 共 131 行

JAVA
131
字号

import javax.microedition.lcdui.*;

public class OptionCanvas extends Canvas {

	MenuCanvas BCai;

	Display display;

	int menuY;

	Image imgBg = null;//背景

	Image imgSoundOn = null;

	Image imgOnNormal = null;

	Image imgSoundOff = null;

	Image imgOffNormal = null;

	Image imgSound = null;

	Graphics bg; //后台缓存画图笔

	Image buf; //后台缓存画图板

	boolean bOnOff = true;

	OptionCanvas(MenuCanvas BCai, Display display) {
		buf = Image.createImage(180, 196); //将缓冲对象的Graphics附给bg
		bg = buf.getGraphics();

		this.setFullScreenMode(true);
		this.BCai = BCai;
		this.display = display;

		menuY = 110;

		try {

			imgBg = Image.createImage("/picres/bg_map_blank.png");
			imgSound = Image.createImage("/picres/sound_normal.png");
			imgOnNormal = Image.createImage("/picres/on_normal.png");
			imgSoundOn = Image.createImage("/picres/on.png");
			imgOffNormal = Image.createImage("/picres/off_normal.png");
			imgSoundOff = Image.createImage("/picres/off.png");

		} catch (java.io.IOException e) {
			System.out.println("picture problem");
		}
	}

	public void paint(Graphics g) {

		//画背景
		bg.drawImage(imgBg, 0, 0, Graphics.TOP | Graphics.LEFT);
		bg.drawImage(imgSound, 43, 70, Graphics.TOP | Graphics.LEFT);
		bg.drawImage(imgSoundOn, 43, 110, Graphics.TOP | Graphics.LEFT);
		bg.drawImage(imgSoundOff, 43, 130, Graphics.TOP | Graphics.LEFT);

		switch (menuY) {
		case 110:
			bg.drawImage(imgOnNormal, 43, menuY, Graphics.TOP | Graphics.LEFT);
			break;
		case 130:
			bg.drawImage(imgOffNormal, 43, menuY, Graphics.TOP | Graphics.LEFT);
			break;
		}

		g.drawImage(buf, 0, 0, Graphics.LEFT | Graphics.TOP);
	}

	//返回是否加入背景音乐
	public boolean getSoundSwitch() {

		return bOnOff;
	}

	public void keyPressed(int keyCode) {
		int k = getGameAction(keyCode);
		System.out.println(k);
		if (k == Canvas.UP) // Canvas.DOWN ,RIGHT,LEFT, FIRE
		{
			menuY -= 20;
			if (menuY < 110)
				menuY = 130;
			repaint();
		} else if (k == Canvas.DOWN) // Canvas.DOWN ,RIGHT,LEFT, FIRE
		{
			menuY += 20;
			if (menuY > 130)
				menuY = 110;
			repaint();

		} else if (k == 8 || keyCode == -7) {
			ProcessCommand();
			System.out.println(bOnOff);
			BackCommand();
		}

		else if (keyCode == -6) {
			System.out.println(bOnOff);
			BackCommand();
		}
	}

	public void BackCommand() {
		if (!BCai.fd) {
			if (bOnOff)
				BCai.bgmap.Sound();
			else
				BCai.bgmap.StopSound();
			BCai.PT = 1;
			BCai.menuY = 74;
		} else {
			BCai.PT = 1;
			BCai.menuY = 59;
		}
		display.setCurrent(BCai);
		BCai.repaint();
	}

	public void ProcessCommand() {
		if (menuY == 110) {
			bOnOff = true;
		} else if (menuY == 130) {
			bOnOff = false;
		}
	}
}

⌨️ 快捷键说明

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