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

📄 gamecanvas.java

📁 j2me手机游戏《都市历险记》的源代码
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
				offG.drawImage(this.pStopim[playerStop[nowFrame]], px, py, 0);
			}

			break;
		case 1: // 跑动
			// System.out.println("now Frame" + nowFrame);
			offG.setClip(px, py, imgDataPlayer[this.RunMotion[nowFrame]][2],
					imgDataPlayer[RunMotion[nowFrame]][3]);

			if (!mirro) {

				offG.drawImage(person, px
						- imgDataPlayer[this.RunMotion[nowFrame]][0], py
						- imgDataPlayer[this.RunMotion[nowFrame]][1], 0);
			} else {
				int tmp = nowFrame;
				if (nowFrame == 3)
					tmp = 1;
				offG.drawImage(this.pRunim[tmp], px, py, 0);

			}
			break;
		case 2: // 死亡
			if (menuBK == null) {
				try {
					this.level_Image = null;
					this.imgEnemy = null;
					System.gc();
					menuBK = Image.createImage("/menuBG.png");
				} catch (Exception e) {
				}

			}
			offG.setClip(px, py, imgDataPlayer[playerDead[nowFrame]][2],
					imgDataPlayer[playerDead[nowFrame]][3]);
			offG.drawImage(person, px - imgDataPlayer[playerDead[nowFrame]][0],
					py - imgDataPlayer[playerDead[nowFrame]][1], 0);
			// System.out.println("now Frame" + nowFrame);

			if (nowFrame > playerDead.length - 2) {

				this.gameState = MENU;
				dir2 = DIR_DOWN;
				index = 0;
				this.repaint();
				return;
			}
			break;
		case 4: // jump
			offG.setClip(px, py, imgDataPlayer[5][2], imgDataPlayer[5][3]);
			if (!mirro) {
				offG.drawImage(person, px - imgDataPlayer[5][0], py
						- imgDataPlayer[5][1], 0);
			} else {

				offG.drawImage(this.pRunim[3], px, py, 0);

			}
			break;
		case 5: // down

			offG.setClip(px, py, imgDataPlayer[6][2], imgDataPlayer[6][3]);
			if (!mirro) {
				offG.drawImage(person, px - imgDataPlayer[6][0], py
						- imgDataPlayer[6][1], 0);
			} else {
				offG.drawImage(this.pRunim[4], px, py, 0);

			}

			break;
		}
	}

	public int score;

	public void chechScore() {
		/*
		 * for(int i=0;i<mon.size();i++ ) { int tm[]=(int [])mon.elementAt(i);
		 * tm[0]-=map_CurX; tm[1]-=map_CurY; if((Math.abs (px - tm[0]) <
		 * 40)&&(Math.abs (py - tm[1]) < 56)) { score+=1; mon.removeElementAt(i ); } }
		 */
	}

	/***************************************************************************
	 * 初始化每关所有变量
	 **************************************************************************/
	public void initLevel(int n) {
		System.out.println("load level   " + n);

		// if (imgEnemy == null) {
		// imgEnemy = new Image[5];
		// }
		// else {
		// for (int i = 0; i < imgEnemy.length; i++) {
		// imgEnemy[i] = null;
		// }
		// }
		try {
			menuBK = null;
			System.gc();
			imgEnemy = Image.createImage("/enemy6.png");
		} catch (Exception e) {
			System.out.println("enemy pic err");
		}
		short carnum = 0;
		//    
		// switch (n) {
		// case 1: // 初始化第一关
		// System.gc(); // 释放所有空间提高效率
		// map_CurX = 0;
		map_CurX = 0;
		map_CurY = 0;
		initMap(n);
		index = 0;
		px = 0;
		py = 100;
		nowFrame = 0;
		// frameFlag = nowFrame + 1;
		direction = 0;
		drawPersonFlag = true;
		dir2_Flag = true;
		back_X = 0;
		back_Y = 0;
		lifeState = 1;
		life = 9;

		//
		System.out.println(" row" + enemyData.length);
		//    
		enemy = null;
		enemy = new short[enemyData.length][6];
		// short carnum=0;
		for (int i = 0; i < enemyData.length; i++) {
			enemy[i][0] = enemyData[i][0];
			enemy[i][1] = enemyData[i][1];
			enemy[i][2] = 1;// 1left 2right
			enemy[i][3] = 1;// 1 visible 2noVisible

			if (enemyData[i][2] == 1) {
				enemy[i][4] = carnum++;// nowFrame
			} else {
				enemy[i][4] = 0;// nowFrame
			}
			if (i == 0)
				enemy[i][5] = 1;
			else
				enemy[i][5] = 1;// LIFE

		}

		// initMon(1);
		// break;
		// case 2: // 初始化第二关
		// System.gc(); // 释放所有空间提高效率
		// // map_CurX = 0;
		// map_CurX = 0;
		// map_CurY = 32;
		// initMap(2);
		// index = 0;
		// px = 0;
		// k = 100;
		// nowFrame = 0;
		// dir2=DIR_DOWN;
		// // frameFlag = nowFrame + 1;
		// direction = 0;
		// // drawPersonFlag = true;
		// // dir2_Flag = true;
		// back_X = 0;
		// back_Y = 0;
		// lifeState = 1;
		// life = 9;
		// try{
		// imgEnemy[0] = Image.createImage("/enemy2.png");//BOSS \
		// imgEnemy[1] = Image.createImage("/enemy5.png");//蝎子 |----------敌人种类
		// imgEnemy[2] = Image.createImage("/enemy2.png");//短刀 /
		// imgEnemy[3] = Image.createImage("/enemy3.png");
		// imgEnemy[4] = Image.createImage("/enemy6.png");
		// }catch(Exception e){}
		// enemyData = new short[][] {
		// //{X坐标,Y坐标,种类,移动长度}
		// {500 ,216, 4, 100},
		// {1086 ,216, 2, 80 },
		// {846 ,216, 2, 80 },
		// {658 ,216, 2, 60 },
		// {1269 ,216, 2, 140},
		// {200 ,216, 3, 100},
		// // {400 ,125, 1, 2000},
		// // {560 ,125, 1, 2000},
		// // {1000 ,125, 1, 2000},
		//
		// };
		//
		// // System.out.println(" row"+enemyData.length);
		//
		// enemy = new short[enemyData.length][6];
		//
		// for (int i = 0; i < enemyData.length; i++) {
		// enemy[i][0] =enemyData[i][0];
		// enemy[i][1] =enemyData[i][1];
		// enemy[i][2] =1;//1left 2right
		// enemy[i][3] =1;//1 visible 2noVisible
		//
		// if(enemyData[i][2]==1)
		// {enemy[i][4] =carnum++;//nowFrame
		// }
		// else
		// {enemy[i][4] =0;//nowFrame
		// }
		// if(i==0)enemy[i][5] =1;
		// else enemy[i][5] =1;//LIFE
		//
		// }
		// break;
		// case 3: // 初始化第三关
		// System.gc(); // 释放所有空间提高效率
		// // map_CurX = 0;
		// map_CurX = 0;
		// map_CurY = 32;
		// initMap(3);
		// index = 0;
		// px = 0;
		// py = 100;
		// nowFrame = 0;
		// // frameFlag = nowFrame + 1;
		// direction = 0;
		// // drawPersonFlag = true;
		// // dir2_Flag = true;
		// dir2=DIR_DOWN;
		// back_X = 0;
		// back_Y = 0;
		// lifeState = 1;
		// life = 9;
		// try{
		// imgEnemy[0] = Image.createImage("/enemy2.png");//BOSS \
		// imgEnemy[1] = Image.createImage("/enemy5.png");//蝎子 |----------敌人种类
		// imgEnemy[2] = Image.createImage("/enemy2.png");//短刀 /
		// imgEnemy[3] = Image.createImage("/enemy3.png");
		// imgEnemy[4] = Image.createImage("/enemy6.png");
		// }catch(Exception e){}
		// enemyData = new short[][] {
		// //{X坐标,Y坐标,种类,移动长度}
		// {500 ,216, 4, 100},
		// {1086 ,216, 2, 80 },
		// {846 ,216, 2, 80 },
		// {658 ,216, 2, 60 },
		// {1269 ,216, 2, 140},
		// {200 ,216, 3, 100},
		// // {400 ,125, 1, 2000},
		// // {560 ,125, 1, 2000},
		// // {1000 ,125, 1, 2000},
		//
		// };
		//
		// //System.out.println(" row"+enemyData.length);
		//
		// enemy = new short[enemyData.length][6];
		//
		// for (int i = 0; i < enemyData.length; i++) {
		// enemy[i][0] =enemyData[i][0];
		// enemy[i][1] =enemyData[i][1];
		// enemy[i][2] =1;//1left 2right
		// enemy[i][3] =1;//1 visible 2noVisible
		//
		// if(enemyData[i][2]==1)
		// {enemy[i][4] =carnum++;//nowFrame
		// }
		// else
		// {enemy[i][4] =0;//nowFrame
		// }
		// if(i==0)enemy[i][5] =1;
		// else enemy[i][5] =1;//LIFE
		//
		// }
		// break;
		// case 4: // 初始化第四关
		// System.gc(); // 释放所有空间提高效率
		// // map_CurX = 0;
		// map_CurX = 0;
		// map_CurY = 32;
		// initMap(4);
		// index = 0;
		// px = 0;
		// py = 100;
		// nowFrame = 0;
		// // frameFlag = nowFrame + 1;
		// direction = 0;
		// // drawPersonFlag = true;
		// // dir2_Flag = true;
		// dir2=DIR_DOWN;
		// back_X = 0;
		// back_Y = 0;
		// lifeState = 1;
		// life = 9;
		// try{
		// imgEnemy[0] = Image.createImage("/enemy2.png");//BOSS \
		// imgEnemy[1] = Image.createImage("/enemy5.png");//蝎子 |----------敌人种类
		// imgEnemy[2] = Image.createImage("/enemy2.png");//短刀 /
		// imgEnemy[3] = Image.createImage("/enemy3.png");
		// imgEnemy[4] = Image.createImage("/enemy6.png");
		// }catch(Exception e){}
		// enemyData = new short[][] {
		// //{X坐标,Y坐标,种类,移动长度}
		// {500 ,216, 4, 100},
		// {1086 ,216, 2, 80 },
		// {846 ,216, 2, 80 },
		// {658 ,216, 2, 60 },
		// {1269 ,216, 2, 140},
		// {200 ,216, 3, 100},
		// // {400 ,125, 1, 2000},
		// // {560 ,125, 1, 2000},
		// // {1000 ,125, 1, 2000},
		//
		// };
		//
		// // System.out.println(" row"+enemyData.length);
		//
		// enemy = new short[enemyData.length][6];
		//
		// for (int i = 0; i < enemyData.length; i++) {
		// enemy[i][0] =enemyData[i][0];
		// enemy[i][1] =enemyData[i][1];
		// enemy[i][2] =1;//1left 2right
		// enemy[i][3] =1;//1 visible 2noVisible
		//
		// if(enemyData[i][2]==1)
		// {enemy[i][4] =carnum++;//nowFrame
		// }
		// else
		// {enemy[i][4] =0;//nowFrame
		// }
		// if(i==0)enemy[i][5] =1;
		// else enemy[i][5] =1;//LIFE
		//
		// }
		// break;
		// }

	}

	/***************************************************************************
	 * 处理按键
	 **************************************************************************/
	public void keyPressed(int n) {
		System.out.println("nkey" + n);
		if (gameState == 5) {
			if (n == -22 || n == 22) {
				gameState = 1;
			}
			this.repaint();
			return;
		}

		if (gameState == MENU || gameState == PAUSE) {

			if (menuState == 4) {
				if (n == 2 || n == -2) {
					if (HelpIndex > 0)
						HelpIndex--;
					this.repaint();
					return;
				}
				if (n == 5 || n == -5) {
					if (HelpIndex < 4)
						HelpIndex++;
					this.repaint();
					return;
				}
				if (n == Canvas.KEY_NUM2 || n == -1 || n == Canvas.KEY_NUM8
						|| n == -6)
					return;
			}
			if (menuState == 6
					&& (n == Canvas.KEY_NUM2 || n == -1 || n == Canvas.KEY_NUM8 || n == -6)) {
				if (aboutIndex == 0)
					aboutIndex = 6;
				else
					aboutIndex = 0;
				// System.out.println("index set"+aboutIndex);
				this.repaint();
				return;
			}

			if (menuState >= 3) {
				if (n == Canvas.KEY_NUM2 || n == -1 || n == 1
						&& (menuState != 4 && menuState != 6)) {
					nowFramemenu--;
					if (nowFramemenu <= 0) {
						nowFramemenu = 0;
					}

				}
				if (n == Canvas.KEY_NUM8 || n == -6 || n == 6
						&& (menuState != 4 && menuState != 6)) {
					nowFramemenu++;
					if (nowFramemenu >= 3) {
						nowFramemenu = 3;
					}
				}
				if ((n == -21 || n == 21) && (this.menuState != 3)) {
					this.menuState = 3;
					this.repaint();
					return;
				}
				boolean b1 = (gameState == MENU) && (n == 22 || n == -22)
						&& (this.menuState == 3);
				boolean b2 = (gameState == PAUSE) && (n == 22 || n == -22)
						&& (this.menuState == 3);
				if (menuState == 3 && n == Canvas.KEY_NUM5 || (n == -20)
						|| (n == 20) || (b1) || (b2)) {
					if (nowFramemenu == 0) {
						// if(gameStart.midlet.gc==null){
						//                             
						// d_logo=null;
						// System.gc();

						// GameCanvas.ISRUN=true;
						// gameStart.midlet.gc=new GameCanvas(gameStart.midlet);
						// gameStart.midlet.gc.gameState=GameCanvas.LOAD;
						//
						// }else
						// {
						if (gameState == MENU) {
							System.gc();
							gameState = LOAD;
							proess = 0;
						} else if (gameState == PAUSE) {
							gameState = GAMEING;
						}

						// }
						// gameStart.midlet.d.setCurrent(gameStart.midlet.gc);
					}
					if (nowFramemenu == 1) {
						this.menuState = 4;
					}

					if (nowFramemenu == 2) {
						this.menuState = 6;
					}
					// if(nowFramemenu==3)
					// {
					// this.menuState =5;
					// }

					if (nowFramemenu == 3) {
						// if(gameStart.midlet.gc!=null)
						// {
						// GameCanvas.ISRUN=false;
						// gameStart.midlet.gc=null;
						// gameStart.midlet.d.setCurrent(gameStart.midlet.mm);
						// }
						// else
						// {
						ISRUN = false;
						gameStart.midlet.notifyDestroyed();

						// }
					}
				}
				this.repaint();
			}
			return;
		}

		// if(n==FullCanvas.KEY_SOFTKEY2)
		// {
		// gs.d.setCurrent(new menuCanvas(1,gs));
		// }
		else if (n == -21 || n == 21) {
			gameState = PAUSE;
			this.repaint();
			return;
			// this.gs.d.setCurrent(gs.mm);

		} else if (n == -22 || n == 22) {
			gameState = 5;
			this.repaint();
			return;
		} else if (index == 0) {
			if (
			// (n == Canvas.KEY_NUM4) || (n == -2)||
			this.getGameAction(n) == LEFT) { // 按下左键或是4键
				drawPersonFlag = false;
				direction = DIR_LEFT;
				mirro = true;
				index = 1;

			}
			if (
			// (n == Canvas.KEY_NUM6) || (n == -5)||
			this.getGameAction(n) == RIGHT) { // 按下右键或是6键
				index = 1;
				mirro = false;
				drawPersonFlag = true;
				direction = DIR_RIGHT;

			}
			if ((n == Canvas.KEY_NUM1)) { // 按下1键
				index = 1;
				mirro = false;
				drawPersonFlag = true;
				dir3 = 18;
				dir2 = DIR_UP;
				index = 4;
				mirro = true;
			}
			if ((n == Canvas.KEY_NUM3)) { // 按下3键
				nowFrame = 2;
				index = 4;
				mirro = false;
				drawPersonFlag = true;
				dir3 = 20;
				dir2 = DIR_UP;
			}

		}
		if (index == 0) {
			if (
			// (n == Canvas.KEY_NUM5) || (n == -20)
			this.getGameAction(n) == 8) { // 当按下fire键时
				nowFrame = 4;
				index = 5;

			}
			if (
			// (n == Canvas.KEY_NUM2) || (n == -1)
			this.getGameAction(n) == 1) { // 当按下上键或2键时

				upFlag = 14;
				dir2 = DIR_UP;
				nowFrame = 6;
				index = 4;

			}
		}

	}

	public void keyReleased(int n) { // 释放按键时都成为站立状态

		// if ( (n == Canvas.KEY_NUM4) || (n == -2)) {

⌨️ 快捷键说明

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