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

📄 canvaszhu.java

📁 用J2ME写的手机游戏
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
			g.setColor(0x640605);
			g.drawRect(1, HEIGHT - 65, 50, 50);
			g.setColor(0xCF6232);
			g.fillRect(1, HEIGHT - 15, 45, 15);
			g.setColor(0xffffff);
			g.drawString(FormMenuClose, 1, HEIGHT, Graphics.LEFT
					| Graphics.BOTTOM);
			// 绘制移动标识
			g.setColor(0xDD9205);
			g.fillRect(2, HEIGHT - 31 - FormMeun_index * 15, 48, 15);
			g.setColor(0xffffff);
			for (int i = FormMenuObj.length - 1; i >= 0; i--) {
				g.drawString(FormMenuObj[i], 5, HEIGHT - 45 + 15 * i,
						Graphics.LEFT | Graphics.BOTTOM);
			}
		} else {
			g.setColor(0x003366);
			g.drawString(FormMenu, 1, HEIGHT, Graphics.LEFT | Graphics.BOTTOM);
		}
	}

	private void paintLogo(Graphics a){
		a.setColor(0);
		a.fillRect(0, 0, WIDTH, HEIGHT);
		a.drawImage(logo,WIDTH/2,40,Graphics.HCENTER|Graphics.TOP);
	
		a.setColor(0xffffff);// 按钮颜色
		a.setFont(Font.getFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN,
				Font.SIZE_MEDIUM));
		a.drawString(OK, WIDTH, HEIGHT,// 按钮
				Graphics.BOTTOM | Graphics.RIGHT);
	}
	
	private void paintNogo(Graphics a) {// Nogo绘制
		a.setColor(0xF5C580);
		a.fillRect(0, 0, WIDTH, HEIGHT);
		a.setColor(0xFBFBC0);
		// 圆的半径是 : int r = 45;
		a.fillArc(WIDTH / 2 - 45, HEIGHT / 2 - 45, 2 * 45, 2 * 45, 0, 360);
		a.setColor(0x666666);
		a.drawArc(WIDTH / 2 - 45, HEIGHT / 2 - 45, 2 * 45, 2 * 45, 0, 360);
		a.drawImage(nogo, WIDTH / 2, HEIGHT / 2 - 90 / 2,// nogo图高为90
				Graphics.TOP | Graphics.HCENTER);

		a.setColor(0x304660);// 按钮颜色
		a.setFont(Font.getFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN,
				Font.SIZE_MEDIUM));
		a.drawString(OK, WIDTH, HEIGHT,// 按钮
				Graphics.BOTTOM | Graphics.RIGHT);
	}

	private void paintMenu(Graphics a) {// 菜单绘制
		// 背景
		a.setColor(0xF5C580);// 底色
		a.fillRect(0, 0, WIDTH, HEIGHT);
		a.drawImage(menu, 0, HEIGHT, Graphics.BOTTOM | Graphics.LEFT);
		// 气球绘制
		a.drawImage(qiqiu, 65, 50 + 30 * (Menu_index - 2), Graphics.TOP
				| Graphics.LEFT);
		// 按钮颜色
		a.setColor(0xff0000);
		a.setFont(Font.getFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN,
				Font.SIZE_MEDIUM));
		// 按钮绘制
		a.drawString(OK, WIDTH, HEIGHT, Graphics.BOTTOM | Graphics.RIGHT);
		// 菜单
		a.setColor(0x003366);
		a.setFont(Font.getFont(Font.FACE_MONOSPACE, Font.STYLE_BOLD,
				Font.SIZE_MEDIUM));
		for (int i = 0; i < STRMENU.length; i++) {
			a.drawString(STRMENU[i], 92, 53 + 30 * i, Graphics.TOP
					| Graphics.LEFT);
		}
	}

	private void paintStart(Graphics a) {
		a.drawImage(beijing, 0, 0, Graphics.TOP | Graphics.LEFT);
		a.drawImage(shi, shix, shiy, Graphics.BOTTOM | Graphics.RIGHT);
		a.setColor(0xDD9205);
		a.fillRect(75, 120, 90, 30);
		a.setColor(0x640605);
		a.drawRect(75, 120, 90, 30);
		a.drawString(ALERT, WIDTH / 2, HEIGHT / 2, Graphics.HCENTER
				| Graphics.BOTTOM);
		// 小猪绘制
		if (langfangxiang[0] == 3) {
			a.drawImage(xiaozhu, langStartx, HEIGHT, Graphics.BOTTOM
					| Graphics.LEFT);
		}
		// 狼移动绘制
		paintqietu(a, langStartx, HEIGHT, tushuL, 0, langfangxiang[0]);
		// 猪移动绘制
		paintqietu(a, zhux, HEIGHT, tushuZ, 25, langfangxiang[0]);

	}

	private void paintHelpForm(Graphics a) {
		// 背景色
		a.setColor(0xC0C0C0);
		a.fillRect(0, 0, WIDTH, HEIGHT);
		// 标题
		a.setColor(0x304660);
		a.drawString(GAMEHELP, 3, 1, Graphics.TOP | Graphics.LEFT);
		// 文本框
		a.setColor(0xF1EAEA);
		a.fillRect(5, 15, WIDTH - 10, HEIGHT - 30);
		a.setColor(0);
		a.drawRect(5, 15, WIDTH - 10, HEIGHT - 30);
		// 文本内容
		a.setColor(0x304660);
		a.drawString(GAMEHELPTEXT, 7, 18, Graphics.TOP | Graphics.LEFT);
		// 绘制图片
		a.drawImage(caozuo, 25, 50, Graphics.TOP | Graphics.LEFT);
		// 绘制按钮
		a.setFont(Font.getFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN,
				Font.SIZE_MEDIUM));
		a.drawString(BACK, WIDTH, HEIGHT,// 按钮
				Graphics.BOTTOM | Graphics.RIGHT);
	}

	private void paintAboutForm(Graphics a) {
		// 背景色
		a.setColor(0xC0C0C0);
		a.fillRect(0, 0, WIDTH, HEIGHT);
		a.setColor(0x304660);
		a.drawString(GAMEABOUT, 3, 1, Graphics.TOP | Graphics.LEFT);
		// 文本框
		a.setColor(0xE4E4E4);
		a.fillRect(5, 15, WIDTH - 10, HEIGHT - 30);
		a.setColor(0);
		a.drawRect(5, 15, WIDTH - 10, HEIGHT - 30);
		// 文本内容
		a.setColor(0x304660);
		for (int i = 0; i < GAMEABOUTTEXT.length; i++) {
			a.drawString(GAMEABOUTTEXT[i], 8, 20 + 25 * i, Graphics.TOP
					| Graphics.LEFT);
		}
		// 绘制按钮
		a.setFont(Font.getFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN,
				Font.SIZE_MEDIUM));
		a.drawString(BACK, WIDTH, HEIGHT,// 按钮
				Graphics.BOTTOM | Graphics.RIGHT);
	}

	private void paintFirstForm(Graphics a) {
		// 背景绘制
		a.drawImage(beijing, 0, 0, Graphics.TOP | Graphics.LEFT);
		// 绘制线
		a.setColor(0xAC021E);
		a.fillRect(ZHUX + LANG_ZHU / 2, YA_Y, 1, zhuFirstFormy - YA_Y);
		// 绘制猪
		a.drawImage(zhu, ZHUX, zhuFirstFormy, Graphics.BOTTOM | Graphics.LEFT);// 
		// 绘制得分
		a.drawString(defenString, WIDTH - 2, 2, Graphics.TOP | Graphics.RIGHT);
		// 绘制按钮
		a.setColor(0x003366);
		a.drawString(PAU, WIDTH, HEIGHT, Graphics.RIGHT | Graphics.BOTTOM);
		// 石头绘制
		paintFirstFormShi(a);
		// 绘制箭
		paintFirstFormJian(a);
		// 狼绘制
		paintFirstFormLang(a);
		// 盾和气球绘制
		paintFirstFormDun_Qiqiu(a);
		// 菜单
		paintFirstFormMenu(a);
	}

	private void paintResult(Graphics g) {
		// 保存游戏得分
		int defenRead = 0;
		String s = "";
		try {
			rs = RecordStore.openRecordStore("recordlist", false);
			if (rs.getNumRecords() == 2) {
				s = String.valueOf(defen);
				rs.addRecord(s.getBytes(), 0, s.getBytes().length);
			} else {
				s = new String(rs.getRecord(3));
				defenRead = Integer.parseInt(s);
				if (defenRead < defen) {
					s = String.valueOf(defen);
					rs.setRecord(3, s.getBytes(), 0, s.getBytes().length);
				} else {
					defen = defenRead;
				}
			}
			s=null;
			rs.closeRecordStore();
		} catch (Exception e) {

		}
		// 绘制界面
		// 背景
		g.drawImage(beijing, 0, 0, Graphics.TOP | Graphics.LEFT);
		g.setColor(0xF5C580);
		g.fillRect(62, 100, 116, 53);
		g.setColor(0);
		g.drawString(DEFENHIGH + defen, 65, 102, Graphics.TOP | Graphics.LEFT);
		g.setColor(0x640605);
		g.drawRect(65, 120, 110, 30);
		g.drawRect(62, 100, 116, 53);
		g.drawString(FINALMENU, WIDTH / 2, HEIGHT / 2, Graphics.HCENTER
				| Graphics.BOTTOM);
	}

	protected void keyPressed(int keyCode) {
		int key = this.getGameAction(keyCode);
		switch (index) {
		case Logo:
			if (key == Canvas.FIRE || keyCode == -7) {// OK键或右软件
				index = Nogo;
			}
			break;
		case Nogo:
			if (key == Canvas.FIRE || keyCode == -7) {// OK键或右软件
				index = Menu;
				repaint();
			}
			break;
		case Menu:
			if (key == Canvas.DOWN) {// 上下方向键 选择跳转
				if (Menu_index == 6) {
					Menu_index = 2;
				} else
					Menu_index++;
				repaint();
			} else if (key == Canvas.UP) {
				if (Menu_index == 2) {
					Menu_index = 6;
				} else
					Menu_index--;
				repaint();
			}

			if (key == Canvas.FIRE || keyCode == -7) {// OK键或右软件
				switch (Menu_index) {
				case Start:
					ChuShiHua();
					index = Start;
					break;
				case Continue:
					if (jixu == 100) {
						index = Continue;
					}
					break;
				case HelpForm:
					index = HelpForm;
					break;
				case AboutForm:
					index = AboutForm;
					repaint();
					break;
				case QuitApp:
					boolrun = false;
					MIDletZhu.quitApp();
					break;
				}
			}
			break;
		case Start:
			index = FirstForm;
			langfangxiang[0] = 0;
			repaint();
			break;
		case HelpForm:
			if (key == Canvas.FIRE || keyCode == -7) {
				index = Menu;
				repaint();
			}
			break;
		case AboutForm:
			if (key == Canvas.FIRE || keyCode == -7) {
				index = Menu;
				repaint();
			}
			break;
		case FirstForm:
			if (keyControl) {
				if (key == Canvas.UP) {
					pressedUp = true;
				} else if (key == Canvas.DOWN) {
					pressedDown = true;
				}

				if (key == Canvas.FIRE && keyControl) {
					if (!controljian) {
						controljian = true;
						jianArray[jiani][0]--;// 改为199,出发runjianMove()
						jianArray[jiani][1] = (zhuFirstFormy - 8);
					}
				}
				repaint();
			}
			if (keyCode == -6) {
				if (boolrun) {
					boolrun = false;
					keyControl = false;
				} else {
					boolrun = true;
					keyControl = true;
					Thread thre = new Thread(this);
					thre.start();
				}
				repaint();
			}
			if (!boolrun) {// Form里的菜单操作
				if (key == Canvas.DOWN) {
					if (FormMeun_index == 0) {
						FormMeun_index = 2;
					} else {
						FormMeun_index--;
					}
				}
				if (key == Canvas.UP)
					if (FormMeun_index == 2) {
						FormMeun_index = 0;
					} else {
						FormMeun_index++;
					}
				if (key == Canvas.FIRE) {
					switch (FormMeun_index) {
					case 0:
						jixu = 100;
						SaveGame();
						System.gc();
						break;
					case 1:
						ChuShiHua();
						index = FirstForm;
						boolrun = true;
						keyControl = true;
						Thread thre = new Thread(this);
						thre.start();
						System.gc();
						break;
					case 2:
						boolrun = false;
						MIDletZhu.quitApp();
						break;
					}
				}
				repaint();
			}
			if (keyCode == -7) {// 暂停保存
				jixu = 100;
				SaveGame();
				index = Menu;
				repaint();
				System.gc();
			}
			break;
		case Result:
			if (key == Canvas.LEFT) {
				ChuShiHua();
				index = FirstForm;
				repaint();
			}
			if (key == Canvas.RIGHT) {
				ChuShiHua();
				index = Menu;
				repaint();
			}
			System.gc();
			break;
		}
	}

	protected void keyReleased(int keyCode) {
		int key = this.getGameAction(keyCode);
		if (key == Canvas.UP) {
			pressedUp = false;
		} else if (key == Canvas.DOWN) {
			pressedDown = false;
		}
	}

	public void run() {
		while (boolrun) {
			try {
				if (rt.freeMemory() < 50) {
					System.gc();
				}
				switch (index) {
				case Nogo:
					if(logo!=null){
						logo=null;
						System.gc();
					}
					if(nogo==null){
						nogo = Image.createImage("/zhu/res/nogo.png");
						repaint();
					}
					break;
				case Menu:
					if (nogo != null) {
						nogo = null;
						System.gc();
					}
					if (beijing != null) {
						beijing = null;
					}
					if (caozuo != null) {
						caozuo = null;
						System.gc();
					}
					break;
				case Start:
					if (beijing == null) {
						beijing = Image.createImage("/zhu/res/beijing.png");
					}
					/** 动化中狼和猪走动切图频率 */
					runpinlv();
					/** 动化中狼和猪的移动 */

⌨️ 快捷键说明

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