亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? gamecanvas.java

?? 手機射擊游戲源代碼,nokia s60模擬器開發包,eclipse工具開發.不可用于商業用途.
?? JAVA
?? 第 1 頁 / 共 4 頁
字號:
package src;

import java.io.IOException;
import javax.microedition.lcdui.*;
//import javax.microedition.media.MediaException;

import com.nokia.mid.ui.FullCanvas;

/*
 * 創建日期 2005-8-25 修改日期 2005-10-18
 */
public class GameCanvas extends FullCanvas implements Runnable {
	//public class GameCanvas extends Canvas implements Runnable {
	Image img[];

	Image loadImg,DeadImage;

	cirsis cs;

	MenuCanvas mc;

//	SoundManager sm;
	
	Bullets[] bullets, playerbomb,npcBullets;

	NPC[] object, NPC;

	NPC gunIco, gunIco2, bombIco, tower;

	Bullets bombtest, s1, npc4bullet;

	Sprite beijing,pd,playerpc, playerpc1, playerpc3, playerpc4, playerpc5, playerpc6,
			lift, playerPc;

	Boss boss;
	
	Player player;

	TiledLayer map;

	GameEngine engine;

	GameDataSimple gds;
	GameTools gt;
	
	int mapData[][][], npcdata[][][], keycode, bulletDirect, npcBulletsCount,
			x1, y1, beijing_x2 = 0, beijing_y2, screenWidth, screenHeight,
			myBulletsCount, bulletType, bombType,playerCount1,playerCount2,myscore,
			myBombCount, myBulletsCount1_1, myBulletsCount1_2, kaishi_x,
			kaishi_x1, kaishi_x2, kaishi_y1, kaishi_y2, score_1, score_2,
			score_3, score_4, score_5, mapPx, mapPy, u, v, V_x, V_y, uu, shan,
			c, d, i, bulletKill, kk, myBulletsCountT, gameLoopInterval,
			score[], liftx, lifty,aaa,mapend,stepV,step,jumpState,step1,cheng;
	
	boolean a, b, e, gunIco_bln, gunIco_bln2, bombIco_bln, right_bln, left_bln,
			rightbln, leftbln, playerWudi, downright, downleft, fuhuo, V,
			diaoluo, ff, isBaozha, kaishi_guan, kaishi_line,ccc,bbb,running;
//	String zuobi="";

	GameCanvas(cirsis cs, MenuCanvas mc) {
		this.cs = cs;
		this.mc = mc;
		engine=null;
		gds=null;
		gt=null;
		engine = new GameEngine();
		engine.gameState = 7;
		gds = new GameDataSimple();
		gt=new GameTools();
		gds.setMissionID(1);
		screenWidth = getWidth();
		screenHeight = getHeight();
		loadImg=null;
		DeadImage=null;
		try {
			loadImg = Image.createImage("/res/loading.png");
			DeadImage = Image.createImage("/res/playerdead.png");
		} catch (IOException e) {
			e.printStackTrace();
		}		
	}

	int npcDatatest[][][];
	/** TODO loading game * */
	void gameInit() {
		player=null;
		bullets=null;
		playerbomb=null;
		npcBullets=null;
		npc4bullet=null;
		gunIco=null;
		gunIco2=null;
		bombIco=null;
		score=null;
		s1=null;
		playerpc=null;
		playerpc1=null;
		mapData=null;
		npcdata=null;
		boss=null;
		object = null;
		NPC= null;
		tower = null;
		beijing = null;
		map = null;		
		lift=null;
		playerpc3=null;
		playerpc4=null;
		playerpc5=null;
		playerpc6=null;
		playerPc=null;
		
		if(img==null){
			img = new Image[47];
			gds.createImage(img,"Image.c",0,47,this);
		}
		    
		object = new NPC[7];
		NPC = new NPC[30];
		bullets = new Bullets[5];
		npcBullets = new Bullets[5];		
		for (int i = 0; i < 5; i++) {
			bullets[i] = new Bullets(img[1], 6, 6);
			npcBullets[i] = new Bullets(img[1], 6, 6);
		}
		bombtest = new Bullets(img[9], 17, 17);
		pd=new Sprite(DeadImage,45,45);
		
		npcDatatest=new int[4][37][2];
		npcDatatest=gt.GetArray_3(1);
		for (int i=0;i<4;i++){
			for (int j=0;j<37;j++){
				for (int k=0;k<2;k++)
					System.out.println(npcDatatest[i][j][k]);				
			}
		}

		s1 = new Bullets(img[10], img[10].getWidth()/4, img[10].getHeight());
		playerpc = new Sprite(img[12], 1, 10);
		playerpc1 = new Sprite(img[12], 1, 10);
		
		player = new Player(0, "Player", img[11], img[11].getWidth() / 24,
			img[11].getHeight() / 2);
		gunIco = new NPC(1, "guns", img[20], img[20].getWidth(), img[20]
				.getHeight());
		gunIco.setPosition(-20, -20);
		gunIco2 = new NPC(1, "guns", img[21], img[21].getWidth(), img[21]
				.getHeight());
		gunIco2.setPosition(-20, -20);
		bombIco = new NPC(1, "bomb", img[22], img[22].getWidth(), img[22]
				.getHeight());
		bombIco.setPosition(-20, -20);		
		score = new int[5];
		initPlayerVariable();
		mapData = gds.getMapSize(); //地圖圖片數組
		npcdata = gds.getSpritesData(); //NPC1坐標數組
	}
	
	/** init Mission 關卡數據 * */
	void initMission() {
//		beijing=null;
//		map=null;
//		for (int i=0;i<object.length;i++){
//			object[i]=null;
//		}
//		tower=null;
//		playerpc3=null;
//		playerpc4=null;
//		playerpc5=null;
//		playerpc6=null;
//		tower=null;
//		lift=null;
		
		switch (gds.getMissionID()) {
		case 1:
			beijing = new Sprite(img[29], img[29].getWidth(), img[29]
					.getHeight());
			map = new TiledLayer(200, 6, img[30], 32, 32);
			for (int i = 0; i < 7; i++) {
				if (i < 3)
					object[i] = new NPC(1, "lift", img[31], img[31].getWidth(),
							img[31].getHeight());
				if (i >= 3 & i < 5)
					object[i] = new NPC(2, "lajibox", img[32], img[32]
							.getWidth(), img[32].getHeight());
				if (i >= 5)
					object[i] = new NPC(3, "car", img[33], img[33].getWidth(),
							img[33].getHeight());
			}
			object[0].defineCollisionRectangle(0, 0, 40, 10);
			object[1].defineCollisionRectangle(0, 0, 30, 10);
			object[3].defineCollisionRectangle(0, -10, 40, 48);
			object[4].defineCollisionRectangle(0, -10, 40, 48);			
			playerpc3 = new Sprite(img[12], 1, 10);
			playerpc4 = new Sprite(img[12], 1, 10);
			playerpc5 = new Sprite(img[13], 41, 1);
			playerpc6 = new Sprite(img[13], 41, 1);
			tower = new NPC(1, "tower", img[34], 200, 288);
			tower.setPosition(screenWidth, 0);
			stepV = 14;
			break;
		case 2:			
			beijing = new Sprite(img[41], img[41].getWidth(), img[41]
					.getHeight());
			map = new TiledLayer(200, 6, img[35], 32, 32);
			for (int i = 0; i < 7; i++) {
				object[i] = new NPC(1, "box", img[38], img[38].getWidth(),
						img[38].getHeight());
			}
			for (int i = 0; i < object.length; i++) {
				object[i].defineCollisionRectangle(0, -10, 38, 38);
			}
			npc4bullet = new Bullets(img[40], img[40].getWidth() / 3, img[40]
																			.getHeight());
			stepV = 14;
			break;
		case 3:
			beijing = new Sprite(img[43], img[43].getWidth(), img[43]
					.getHeight());
			map = new TiledLayer(200, 2, img[42], 32, 32);			
			for (int i = 0; i < 7; i++) {
				object[i] = new NPC(1, "box", img[38], img[38].getWidth(),
						img[38].getHeight());
			}
			for (int i = 0; i < object.length; i++) {
				object[i].defineCollisionRectangle(0, -10, 38, 38);
			}
			for (int i = 0; i < 2; i++)
				for (int j = 0; j < 200; j++) {
					map.setCell(j, i, mapData[gds.getMissionID() - 1][i][j]);
				}
			map.move(0, 145);
			stepV = 14;
			break;
		case 4:
			beijing = new Sprite(img[45], img[45].getWidth(), img[45]
					.getHeight());
			map = new TiledLayer(72, 2, img[44], 32, 32);
			for (int i = 0; i < object.length; i++) {
				object[i] = new NPC(1, "mine", img[46], img[46].getWidth(),
						img[46].getHeight());
			}
			lift = new Sprite(img[31], 52, 24);
			playerPc = new Sprite(img[13], 41, 1);
			playerPc.setPosition(100, 50);
			liftx = 0;//2230
			lifty = 400;
			lift.setPosition(liftx, lifty);

			for (int i = 0; i < 2; i++)
				for (int j = 0; j < 70; j++) {
					map.setCell(j, i, mapData[gds.getMissionID() - 1][i][j]);
				}			
			map.move(0, 145);
			stepV = 18;
			break;
		}

		for (int i = 0; i < object.length; i++) {
			object[i].setPosition(npcdata[gds.getMissionID() - 1][i + 30][0],
					npcdata[gds.getMissionID() - 1][i + 30][1]);
		}

		map.setScreen(screenWidth, screenHeight); //只畫屏幕部分的地圖
		if (gds.getMissionID() <3) {
			for (int i = 0; i < 6; i++)
				for (int j = 0; j < 200; j++) {
					map.setCell(j, i, mapData[gds.getMissionID() - 1][i][j]);
				}
			map.move(0, 30);
		}

		mapend = map.width - screenWidth;		
		initNPC();
		initPlayer();
		if (MenuCanvas.onsound)SoundManager.playBackGroundMid();
	}

	boolean playerisfire;
	Runtime r;
	/** TODO paint * */
	protected void paint(Graphics g) {
		g.setColor(255, 255, 255);
		g.fillRect(0, 0, screenWidth, screenHeight);
		switch (engine.gameState) {
		case 7:
			drawLoad(g);
			break;
		case GameEngine.GAME_ING:
			if (baoguan) return;
			playerpc.setPosition(player.x + 34, player.y + 10);
			playerpc1.setPosition(player.x, player.y + 10);
			switch (gds.getMissionID()) {
			case 1:
				paintMission1(g);
				break;
			case 2:
				paintMission2(g);
				break;
			case 3:
				paintMission3(g);
				break;
			case 4:
				paintMission4(g);
				break;
			}
			getGun(g);

			//player掉進陷阱
			if (player.y > screenHeight) {
				playerDead();
				initPlayer();	//???????????
			}
			if (player.isAlive) {
				if (playerWudi) {
					uu++;
					if (uu == 100) {
						uu = 0;
						playerWudi = false;
					}
				}
				
				//判斷是否畫player子彈
				for (int i=0;i<bullets.length;i++){
					if (bullets[i].isAlive){
						playerisfire=true;
						break;
					}else{
						playerisfire=false;
					}
					if (this.npcBullets[i].isAlive){
						npcisfire=true;
						break;
					}else{
						npcisfire=false;
					}					
				}
				
				if(playerisfire)bulletOverlaps(g, bullets);
				bombOverlaps(g, bombtest);

//				if (npcisfire)npcBulletOverlaps(g, npcBullets);
//				if (gds.getMissionID()>1)npc4BulletOverlaps(g);
				
				if (playerWudi) {
					shan++;
					if (shan % 3 == 0)
						player.doDraw(g);
				} else {
					player.doDraw(g);
					shan = 0;
				}
			}

			if (pd.visible){
				pdf++;
				pd.paint(g);
				pd.nextFrame();
				if (pdf==8){
					pd.visible=false;
					pdf=0;
				}
			}
			
			if (gds.getMissionID() == 1) {
				//tower
				if (Math.abs(map.x) % 500 == 0) {
					tower.isAlive = true;
				}
				if (tower.x <= -tower.width) {
					tower.isAlive = false;
					tower.setPosition(screenWidth, 0);
				}
				if (tower.isAlive)
					tower.paint(g);
			}

			//畫狀態欄
			paint_zhuangtai(g);

			if (engine.gameOver) {
				mc.playmidi(mc.sound.gameoverPlayer);
				g.drawImage(img[24], 0, 0, 0);
				g.drawImage(img[23], 60, 100, 0);
				fuhuo = false;
			}
			paint_V(g);
			if (kaishi_guan) {
				paint_kaishi(g);
			}
			break;
		}
//		r=Runtime.getRuntime();
//		g.setClip(0,0,176,208);
//		g.setColor(0,255,0);
//		g.drawString(Integer.toString((int) r.freeMemory()),0,50,0);
//		g.drawString(Integer.toString((int) r.totalMemory()),0,70,0);
	}
	
	/** TODO run * */
	public void run() {		
		while (running && !engine.gameOver) {
			repaint();
			long start = System.currentTimeMillis();
			switch (engine.gameState) {
			case GameEngine.GAME_LOAD:
				SoundManager.closeSound();
				if (gds.getMissionID()==1){
					gameInit();
					initMission();
					initVariable();	
				}else{
					initMission();
					initVariable();	
				}
				engine.gameState = 6;				
				break;
			case GameEngine.GAME_ING:
				if (baoguan)return;
				if (MenuCanvas.onsound)
					SoundManager.playBackGroundMid();
//				engine.doKey(keycode);
//				engine.action();
				kaishi();
				npcAction();
				for (int i = 0; i < object.length; i++) {
					FuHuoPz(map, object[i]);
				}
				if (gds.getMissionID() == 1) {
					a = lift(a, map, object[0], playerpc3, null, null, player);
					b = lift(b, map, object[1], playerpc4, null, null, player);
					e = lift(e, map, object[2], null, playerpc5, playerpc6,
							player);
				}

				if (player.isAlive) {
					jump();
					playerMove();
				}
				
				switch (gds.getMissionID()) {
				case 1:
					if (boss.isAlive){
						boss.boss1_bullet_move();
						boss.boss_qian_fire();
						boss.boss_shang_fire();
						boss.boss_hou_fire();
						boss.boss_run();
					}
					break;
				case 2:
					if (boss.isAlive) {					
						boss.boss2_run();						
						boss.boss2_Dfire();							
						boss.boss2_Xfire();							
						boss.boss2_bulletRun();						
					}
					break;
				case 3:
					if (boss.isAlive) {
						boss.boss3_run();
						boss.boss3_Xfire();
						boss.boss3_bulletRun();
						boss.boss3_dboom();
					}
					break;
				case 4:
					if (boss.isAlive) {
						switch (cheng) {
						case 1:
							boss.boss4_tRun();
							boss.boss4_bulletRun();
							boss.boss4_run();
							boss.boss4_trun();
							break;
						case 2:
							boss.boss5_boom();
							boss.boss5_bulletRun();
							boss.boss5_run();
							break;
						}
					}
					if (!playerWudi){
						for (int i = 0; i < object.length; i++) {
							if (object[i].isAlive && player.collidesWith(object[i])) {
								s1.setPosition(object[i].x, object[i].y - 30);
								isBaozha = true;
								object[i].isAlive = false;
								playerDead();
							}
						}
					}					
					break;
				}				
				V_run();								
				break;
			}
			long end = System.currentTimeMillis();
			int duration = (int) (end - start);
			if (duration < gameLoopInterval) {
				try {
					Thread.sleep(gameLoopInterval - duration);
				} catch (InterruptedException e) {
					e.printStackTrace();
				}
			}
		}
	}
	
	void initVariable() {
		gameLoopInterval = 40;
		mapPx = 0;
		mapPy = 0;
		npcBulletsCount = 0;
		x1 = 0;
		y1 = 0;
		beijing_x2 = 0;
		beijing_y2 = 0;

		kaishi_x = 0;
		kaishi_x1 = 0;
		kaishi_x2 = 0;
		kaishi_y1 = -getHeight() / 2;
		kaishi_y2 = getHeight();
		uu = 0;
		shan = 0;
		u = 0;
		v = 0;
		V_x = 5;
		V_y = -15;
		V = false;
		a = false;
		b = false;		
		diaoluo = false;
		ff = false;
		isBaozha = false;
		kaishi_guan = true;
		kaishi_line = true;
		e = true;
		aaa = 0;
		c = 0;
		d = 1;
		i = 0;
		bulletKill = 0;
		kk = 0;
//		stepV = 18;
//		step = 14;
		jumpState = 0;
		step1 = 7;
		cheng = 1;
		pd.visible=false;
	}

	void initPlayerVariable() {
		myscore = 0;
		myBulletsCount = 0;
		bulletType = 1;
		bombType = 5;
		playerCount1 = 1;
		playerCount2 = 5;
		playerCountT=0;
//		zuobicount=9;
		myBombCount = 9;
		myBulletsCount1_1 = 0;
		myBulletsCount1_2 = 0;
		myBulletsCountT = 0;
	}
	
	void liftBT() {
		if (bbb) {
			map.setPosition(lift.x + lift.getWidth(), -100);
			playerPc.setPosition(lift.x, -100);
			bbb = false;
		}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产剧情一区二区| 亚洲欧美日韩在线| 午夜伦理一区二区| 国产美女精品在线| 精品久久久久久久人人人人传媒| 丝袜脚交一区二区| 91精品免费在线| 亚洲高清免费视频| 欧美精品电影在线播放| 天堂资源在线中文精品| 在线观看一区不卡| 午夜婷婷国产麻豆精品| 精品视频在线视频| 激情综合一区二区三区| 国产精品进线69影院| 欧美日韩三级一区| 国产精品一级二级三级| 亚洲欧美另类在线| 日韩欧美中文字幕精品| 香蕉久久夜色精品国产使用方法| 97se亚洲国产综合自在线观| 国产麻豆精品在线| 欧美猛男男办公室激情| 日本不卡123| 欧美国产精品v| 欧美日本国产视频| 国产成人精品免费视频网站| 亚洲精品国产成人久久av盗摄 | 欧美一区二区三区在线观看视频 | 亚洲一区二区三区视频在线| 日韩精品一区国产麻豆| 91在线无精精品入口| 日本vs亚洲vs韩国一区三区二区| 久久久五月婷婷| 欧美亚洲综合网| 国内精品久久久久影院一蜜桃| 亚洲日本在线天堂| 久久精子c满五个校花| 欧美影院一区二区| 粉嫩绯色av一区二区在线观看| 亚洲国产你懂的| 国产精品久久久久永久免费观看| 欧美一区二区三区在线电影| 99久久er热在这里只有精品66| 精品影院一区二区久久久| 综合色中文字幕| 久久欧美一区二区| 91精品国产入口| 日韩欧美国产一区二区三区 | 男男gaygay亚洲| 一区二区三区毛片| 欧美激情一区在线| 精品日韩欧美在线| 欧美性色欧美a在线播放| 成人福利在线看| 国产一区二区在线视频| 日韩福利视频网| 亚洲综合男人的天堂| 亚洲日本欧美天堂| 国产精品久线在线观看| 欧美精品一区二区三区一线天视频| 精品视频123区在线观看| av不卡一区二区三区| 国产精品一区二区视频| 久久狠狠亚洲综合| 美女爽到高潮91| 男人的天堂亚洲一区| 亚洲成av人在线观看| 亚洲专区一二三| 亚洲国产精品久久人人爱| 日韩毛片一二三区| 亚洲免费视频成人| 亚洲日本在线视频观看| 亚洲色图清纯唯美| |精品福利一区二区三区| 国产精品毛片大码女人| 国产精品污污网站在线观看| 国产日韩av一区| 亚洲国产精品激情在线观看| 国产欧美日韩在线看| 国产精品嫩草久久久久| 日韩一区在线看| 亚洲自拍偷拍av| 日本在线不卡一区| 免费一级片91| 国产伦精品一区二区三区视频青涩| 精品亚洲成a人在线观看 | 国产精品888| 国产成人av一区二区| 高清不卡一二三区| 99久久婷婷国产精品综合| 色系网站成人免费| 欧美日韩亚洲国产综合| 欧美成va人片在线观看| 国产视频一区二区在线| 亚洲日本免费电影| 亚洲h精品动漫在线观看| 另类的小说在线视频另类成人小视频在线 | 久久天天做天天爱综合色| 国产亚洲欧洲997久久综合| 国产丝袜欧美中文另类| 极品少妇xxxx精品少妇偷拍| 国产一区二区三区在线观看免费| 国产乱淫av一区二区三区| 99精品久久只有精品| 欧美另类变人与禽xxxxx| 日韩久久精品一区| 欧美国产一区视频在线观看| 亚洲综合男人的天堂| 九九精品视频在线看| 91丨九色porny丨蝌蚪| 91精品午夜视频| 中文字幕精品一区二区三区精品| 一区二区三区电影在线播| 蜜臀久久99精品久久久久久9 | 国产精品高潮久久久久无| 亚洲一区精品在线| 国内精品久久久久影院色| 97久久超碰精品国产| 欧美一区二区三区在线观看视频| 国产精品乱码一区二区三区软件| 亚洲一区二区在线免费看| 国产精品一级在线| 欧美日韩国产一级| 国产精品久久毛片av大全日韩| 五月婷婷久久丁香| 成人动漫av在线| 日韩欧美国产一区二区在线播放| 成人免费在线视频| 国产在线精品一区二区| 在线视频综合导航| 欧美经典一区二区三区| 日韩综合在线视频| 日本精品一区二区三区高清| 久久―日本道色综合久久| 午夜精品久久久| 一本色道久久综合狠狠躁的推荐| 精品久久久久久久久久久久久久久| 亚洲精品第1页| 波多野结衣精品在线| 日韩欧美123| 亚洲国产aⅴ天堂久久| 成人av网站在线| 久久先锋影音av鲁色资源| 亚洲电影在线播放| 色素色在线综合| 国产精品久久毛片a| 欧美欧美欧美欧美| 亚洲视频一区在线观看| 国产69精品一区二区亚洲孕妇| 欧美一区二区播放| 五月天亚洲婷婷| 欧美亚洲日本国产| 亚洲精品国产一区二区精华液| 懂色av一区二区三区免费观看| 精品国产sm最大网站免费看| 奇米亚洲午夜久久精品| 欧美精品tushy高清| 日日夜夜免费精品视频| 欧美亚洲一区三区| 亚洲一二三四在线观看| 色美美综合视频| 一区二区三区在线视频观看 | 欧美电影一区二区三区| 亚洲成人av在线电影| 色狠狠一区二区三区香蕉| 亚洲免费看黄网站| 欧美性猛片xxxx免费看久爱| 亚洲国产精品久久人人爱蜜臀| 欧美日韩一区高清| 日韩在线播放一区二区| 欧美剧情电影在线观看完整版免费励志电影 | 奇米影视在线99精品| 日韩午夜激情免费电影| 免费在线成人网| 欧美电视剧在线观看完整版| 久久99精品国产.久久久久| 久久老女人爱爱| 成人h精品动漫一区二区三区| 国产精品人成在线观看免费| 色香蕉成人二区免费| 午夜激情综合网| 精品国产免费人成在线观看| 国产最新精品精品你懂的| 久久精品在线免费观看| 成人午夜在线视频| 亚洲日穴在线视频| 91精品在线一区二区| 国产精品一区二区不卡| 欧美国产国产综合| 91久久精品一区二区三| 日韩电影免费一区| 久久久久国产精品麻豆| 91女人视频在线观看| 天天影视网天天综合色在线播放| 欧美一级生活片| 成人的网站免费观看| 香蕉av福利精品导航| 欧美精品一区在线观看| 91免费观看视频在线|