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

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

?? mygamecanvas.java

?? 這是我們的軟件課程設計,J2ME開發的手機游戲. 是一個簡單的射擊游戲.TXT文檔在模擬器下直接運行. 我想成為會員下源碼@
?? JAVA
字號:
import javax.microedition.lcdui.game.GameCanvas;
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;
import javax.microedition.lcdui.Command;
import java.util.Random;



public class MyGameCanvas extends GameCanvas implements Runnable, CommandListener{
	private static MyGameCanvas instance;
	Graphics g;
	boolean running;
	Thread t;
	Command exitcmd,restartcmd,easycmd,normalcmd,hardcmd;//命令操作
	int keystate;
	boolean keyevent;//鍵盤操作
	boolean key_up,key_down,key_left,key_right,key_fire;//鍵盤狀態
	private boolean allowinput;
	public int screenwidth;//寬
	public int screenheight;//高
	boolean gameover;//游戲結束?
  //define your variable here
	long gametimeoffset;//游戲開始時間
	long gametime;//游戲運行時間
	public int bombnum;//保險的數量
	int []bombaward;
	int bombawardtop;
	int planedirection;//飛機的運動方向
	TiledLayer background,openingphoto;
	private Bullets bullets;//子彈數組
	private Bullets bombadded;
	private Bullets ufobullets;
	GameObject plane;//飛機
	GameObject explosion;//爆炸
	GameObject bomb;//保險
	GameObject ufo;//飛碟
	Image bomb_ico;//保險圖標
	Font fontbig;//時間字體
	Font fontsmall;//保險所剩的數量顯示
	Font font;
	Image img;
	private int bulletspeed;
	private int bulletnum;
	private Random rdm;//隨機數
	int ufox,ufoy;//飛碟坐標
	boolean ufotrue;
	int planex,planey;
	int ufobulletsnum;
	
	//////////////////////////////////////


	

	protected MyGameCanvas() {
		super(true);
		g=getGraphics();
		running=false;
		t=null;
		
		addCommand(easycmd=new Command("Easy",Command.OK,1));
		addCommand(normalcmd=new Command("Normal",Command.OK,1));
		addCommand(hardcmd=new Command("Hard",Command.OK,1));
	    addCommand(exitcmd=new Command("退出",Command.EXIT,0));
		
		img=ImageTools.getImage("/plane.png");//初始化圖片
		g.drawImage(img,getWidth()/2,getHeight()/2,g.VCENTER|g.HCENTER);
		
		
		
		setCommandListener(this);
	    screenwidth=getWidth();
	    screenheight=getHeight();
	    gametime=0;
	    gametimeoffset=System.currentTimeMillis();//初始化系統時間
    //put your init once code here
	    
		img=ImageTools.getImage("/MyPlaneFrames.png");//飛機圖片24*24
	    plane=new GameObject(img,24,24);//
		
		
		
		img=ImageTools.getImage("/UFO.png");//UFO圖片24*24
	    ufo=new GameObject(img,40,32);//
		
	    planedirection=0;
		////////////////////////////
		img=ImageTools.getImage("/back_water.png");
		int backcolumns=screenwidth/img.getWidth()+1;//計算背景橫坐標單元格個數
		int backrows=screenheight/img.getHeight()+1;//計算背景自縱坐標單元格個數
		background=new TiledLayer(backcolumns,backrows,img,img.getWidth(),img.getHeight());//添加背景圖片
		////////////////////////////
		int x,y;
		
		for (int i = 0; i < backcolumns*backrows; i++) {
			  x=i%backcolumns;
			  y=i/backcolumns;
			  System.out.println("x="+x+" y="+y);
			  background.setCell(x,y,1);
		}
		
		img=ImageTools.getImage("/bullet3.png");//子彈圖片8*8
		bullets=new Bullets(img,8,8,screenwidth,screenheight);
		
		img=ImageTools.getImage("/bullet2.png");//飛碟子彈圖片8*8
		ufobullets=new Bullets(img,8,8,screenwidth,screenheight);
		
		img=ImageTools.getImage("/explosion.png");//爆炸效果圖32*32
		explosion=new GameObject(img,32,32);
		
			
		img=ImageTools.getImage("/bomb_icon.png");//圖片18*18
		bombadded=new Bullets(img,18,18,screenwidth,screenheight);
	
		
		bomb_ico=ImageTools.getImage("/bomb_icon.png");//保險圖標
		
		img=ImageTools.getImage("/s_number.png");//時間圖片10*15
		fontsmall=new Font(g,img,5,7,new char[]{'0','1','2','3','4','5','6','7','8','9'});
		
		img=ImageTools.getImage("/b_number.png");//保險所剩的數量顯示5*7
		fontbig=new Font(g,img,10,15,new char[]{'0','1','2','3','4','5','6','7','8','9'});
		
		img=ImageTools.getImage("/bomb.png");//保險圖片65*65
		bomb=new GameObject(img,65,65);
		
		bombaward=new int[]{0,1,1,1,1,1};
		bombawardtop=bombaward.length-1;
	}
 
	synchronized public static MyGameCanvas getInstance() {
		if (instance == null) {
			instance = new MyGameCanvas();
			System.out.println("new MyGameCanvas");
		}
		return instance;
	}

	public void run(){
		System.out.println("MyGameCanvas run start");
		long st=0,et=0,diff=0;
		int rate=35;
		
		while(running){
			st=System.currentTimeMillis();
			gameinput();
			gameMain();
			et=System.currentTimeMillis();
			diff=et-st;
			if(diff<rate){
				try {
				Thread.sleep(rate - diff);
			}
			catch (InterruptedException ex) {}
			}else{}
		}
		
		System.out.println("MyGameCanvas run end");
	}

	public void start(){
		
		if(!running){
			running=true;
			t=new Thread(this);
			t.start();
		}
		
	}

	private void gameMain() {
		g.setColor(0,0,0);//清屏
		g.fillRect(0,0,getWidth(),getHeight());

		background.paint(g);
		
		
	
		if(bomb.alive){
			bomb.moveto(plane.sprite.getX()-20,plane.sprite.getY()-20);
			bomb.paint(g);
			bomb.update();
			bullets.killbullets(plane.sprite,32);
		}		
		
		
		bullets.paint(g);
		
		plane.paint(g);
		bullets.refreshBullets(plane.sprite,!gameover && !bomb.alive);
		
		g.drawImage(bomb_ico,0,screenheight-1,g.BOTTOM|g.LEFT);
		
		if(!gameover){
			gametime=(System.currentTimeMillis()-gametimeoffset)/1000;
		}
		
		long abc=(System.currentTimeMillis ()-gametimeoffset)/100;
		if(abc%100==0){//每隔10秒初始化一次保險
				bombadded.initBullets(5,1);
				
				
				
			}
		if(gametime%10>0&&gametime%10<=6&&(gametime>6)){//在背景上顯示保險6秒
			bombadded.paint(g);
			if(bombadded.addbomb(plane.sprite,!gameover && !bomb.alive)){
				bombnum+=1;
				
			}
				
		}
		
		if(!gameover){
			gametime=(System.currentTimeMillis()-gametimeoffset)/1000;
		}
		
		
		abc=(System.currentTimeMillis ()-gametimeoffset)/100;
		//System.out.println(abc);
		///////////////顯示飛碟
		if(abc%150==0){
			rdm=new Random();
			ufox=(rdm.nextInt() & 0x7fffffff)%(screenwidth-80);
			System.out.println(ufox);
			ufoy=(rdm.nextInt() & 0x7fffffff)%(screenheight/2-15);
			System.out.println(ufoy);
			System.out.println("MyGameCanvas printInfo() asdf");
			ufo.moveto(ufox,ufoy);
			ufobullets.initufoBullets(bulletspeed,ufobulletsnum,ufox,ufoy);
		
		}
		
		
		if(gametime%15>0&&gametime%15<=3&&gametime>3){
			
			ufo.paint(g);
			//ufo.update();
			ufobullets.paint(g);//
			ufobullets.refreshBullets(plane.sprite,!gameover && !bomb.alive);
		}
		
		fontsmall.drawString(String.valueOf(gametime),screenwidth/2-2,10);
		fontbig.drawString(String.valueOf(bombnum),19,screenheight-16);
			
		
	
			
		if (gameover) {
			explosion.paint(g);
			explosion.update();
			img=ImageTools.getImage("/mm.png");
			g.drawImage(img,getWidth()/2,getHeight()/2+50,g.VCENTER|g.HCENTER);	
			
			if(!explosion.alive){
				plane.alive=false;
				//font=getFont(Font.FACE_SYSTEM,Font.STYLE_BOLD ,Font.SIZE_SMALL);
				//g.setFont(font);
				g.setColor(255,255,255);//設置顯示字體的顏色
				g.drawString(StringTools.timeOpinion(gametime),5,22,g.LEFT|g.TOP);
				g.drawString("繼續努力 ! 你的時間是"+gametime+"秒 !" ,screenwidth/2-70,screenheight/2,g.LEFT|g.TOP);//顯示漢字
			}
			
		}
		else{
			gametime=(System.currentTimeMillis()-gametimeoffset)/1000;
			
		
			int x,y;
			if (keyevent) {
				if(key_up){
					x=plane.getX();
					y=plane.getY();
					plane.move(0, -7,screenwidth,screenheight,x,y);
					plane.sprite.setFrame(0);
				}
				if(key_down){
					x=plane.getX();
					y=plane.getY();
					plane.move(0, 7,screenwidth,screenheight,x,y);
					plane.sprite.setFrame(0);
				}
				if(key_left){
					x=plane.getX();
					y=plane.getY();
					plane.move( -7, 0,screenwidth,screenheight,x,y);
					plane.sprite.setFrame(1);
				}
				if(key_right){
					x=plane.getX();
					y=plane.getY();
					plane.move(7, 0,screenwidth,screenheight,x,y);
					plane.sprite.setFrame(2);
				}
				if(key_fire){
					if(!bomb.alive && bombnum>0){//保險未被激活,且保險還有剩余.
						bomb.reset();
						bomb.alive=true;
						bombnum--;
					}
				}
			}
			else {
				plane.sprite.setFrame(0);
			}
		}
		flushGraphics();
	}
	
	
	private void gameInit(int bulletspeed,int num) {
		gameover=false;
		gametime=0;
		gametimeoffset=System.currentTimeMillis();
		allowinput=true;
		key_up=key_down=key_left=key_right=key_fire=false;
		plane.moveto((screenwidth-plane.sprite.getWidth())/2,(screenheight-plane.sprite.getHeight())/2);
		bullets.initBullets(bulletspeed,num);
		bombadded.initBullets(1,1);//初始化保險
		plane.reset();
		
		explosion.reset();
		explosion.lifetime=3;
		bomb.reset();
		bomb.lifetime=6;
		bomb.alive=false;
		bombnum=3;
		
		///////////////////////////////////
		bomb.reset();
		bomb.lifetime=6;
		bomb.alive=false;
		///////////////////////////////////
		
		/*for (int i = 0; i < bombaward.length; i++) {
			bombaward[i]=1;
		}
		
		bombaward[0]=0;
		printInfo();*/
	}

	public void stop(){
		if(running){
			running = false;
		}
	}

	private void printInfo(){
		System.out.println("MyGameCanvas printInfo() start:");
		System.out.println("width : "+ getWidth()+ " Height: "+getHeight());
		java.lang.Runtime rt=java.lang.Runtime.getRuntime() ;
		System.out.println("total memory: "+rt.totalMemory());
		System.out.println("free memory: "+rt.freeMemory());
		System.out.println("MyGameCanvas printInfo() end:");
	}

	public void commandAction(Command c, Displayable d) {
		String cmdstr=c.getLabel();
		
		
		if(cmdstr.equals("Easy")){
			bulletspeed=2;
			bulletnum=10;
			ufobulletsnum=3;
			gameInit(bulletspeed,bulletnum);
			start();
			removeCommand(restartcmd);
			addCommand(restartcmd=new Command("重玩",Command.OK,1));
		}else if(cmdstr.equals("Normal")){
			bulletspeed=3;
			bulletnum=12;
			ufobulletsnum=6;
			gameInit(bulletspeed,bulletnum);
			start();
			removeCommand(restartcmd);
			addCommand(restartcmd=new Command("重玩",Command.OK,1));
		}else if(cmdstr.equals("Hard")){
			bulletspeed=4;
			bulletnum=16;
			ufobulletsnum=10;
			gameInit(bulletspeed,bulletnum);
			start();
			removeCommand(restartcmd);
			addCommand(restartcmd=new Command("重玩",Command.OK,1));
		}else if(cmdstr.equals("重玩")){
			stop();
			while(t.isAlive());
			gameInit(bulletspeed,bulletnum);
			start();
		}else if(cmdstr.equals("退出")){
			stop();
			Navigate.midlet.destroyApp(false);
			Navigate.midlet.notifyDestroyed();
		}
	}

	private void gameinput() {
		if(allowinput){
		keystate=getKeyStates();
		keyevent=false;
		
		if((keystate & UP_PRESSED)!=0){//up
			key_up=true;keyevent=true;
			planedirection=1;
		}else if((keystate & UP_PRESSED)==0){
			if(key_up==true){
				key_up=false;
			}
		}

		if((keystate & DOWN_PRESSED)!=0){//down
			key_down=true;keyevent=true;
			planedirection=2;
		}else if((keystate & DOWN_PRESSED)==0){//release key
			if(key_down==true){
				key_down=false;
			}
		}

		if((keystate & LEFT_PRESSED)!=0){//left
			key_left=true;keyevent=true;
			planedirection=3;
		}else if((keystate & LEFT_PRESSED)==0){
			if(key_left==true){
			key_left=false;
			}
		}

		if((keystate & RIGHT_PRESSED)!=0){//right
			key_right=true;keyevent=true;
			planedirection=4;
		}else if((keystate & RIGHT_PRESSED)==0){
			if(key_right==true){
				key_right=false;
			}
		}

		if((keystate & FIRE_PRESSED)!=0){//fire
			key_fire=true;keyevent=true;
			planedirection=0;
		}else if((keystate & FIRE_PRESSED)==0){//release key
			if(key_fire==true){
				key_fire=false;
			}
		}
		
		if(!keyevent){}
		}
	}

	public static void cleanJob(){
		instance=null;
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美专区日韩专区| 精品国产免费久久| 国产精品一区二区在线播放| 亚洲成av人片在线观看| 亚洲福利电影网| 亚洲美女一区二区三区| 亚洲情趣在线观看| 亚洲国产成人高清精品| 香蕉影视欧美成人| 香蕉影视欧美成人| 蜜臀av一区二区三区| 久久精品免费看| 国产成人午夜精品5599| 99在线热播精品免费| 91蝌蚪porny| 欧美日本在线看| 日韩一级精品视频在线观看| 久久在线观看免费| 中文字幕第一区二区| 一区二区三区日韩精品视频| 午夜精品久久久久久久久久| 三级影片在线观看欧美日韩一区二区| 亚洲色图一区二区三区| 亚洲成人中文在线| 国产在线不卡一卡二卡三卡四卡| 粉嫩av一区二区三区粉嫩| 在线看日本不卡| 精品国产成人在线影院| 亚洲三级电影全部在线观看高清| 午夜伦理一区二区| 国产精品影视在线观看| 欧美综合一区二区三区| 精品国产一区二区三区不卡| 亚洲美女在线国产| 国精产品一区一区三区mba视频| 国产精品白丝jk黑袜喷水| 在线视频中文字幕一区二区| 欧美va亚洲va在线观看蝴蝶网| 国产精品视频观看| 日本v片在线高清不卡在线观看| 国产成人高清在线| 91精品婷婷国产综合久久性色| 久久先锋影音av| 婷婷一区二区三区| www.欧美精品一二区| 精品伦理精品一区| 亚洲综合精品久久| 成人激情开心网| 欧美大黄免费观看| 亚洲大片精品永久免费| 99久久精品国产导航| 精品国产精品一区二区夜夜嗨| 亚洲一区二区高清| a4yy欧美一区二区三区| 久久亚洲欧美国产精品乐播 | 日韩国产精品久久久久久亚洲| 国产酒店精品激情| 欧美一区二区免费观在线| 亚洲黄色av一区| 高清国产一区二区三区| 欧美精品一区二| 久久国产婷婷国产香蕉| 欧美日韩国产片| 亚洲在线视频网站| 色婷婷综合久久久久中文| 国产精品初高中害羞小美女文| 国产一区 二区| 久久九九国产精品| 国产麻豆一精品一av一免费| 精品入口麻豆88视频| 免费成人性网站| 日韩欧美精品在线| 另类欧美日韩国产在线| 日韩欧美二区三区| 精品一二线国产| 欧美变态tickle挠乳网站| 麻豆成人久久精品二区三区小说| 69堂成人精品免费视频| 日韩1区2区3区| 欧美不卡一区二区三区四区| 久久国产精品免费| 久久你懂得1024| 风间由美性色一区二区三区| 亚洲国产精品黑人久久久| 不卡欧美aaaaa| 亚洲综合免费观看高清完整版在线| 色噜噜狠狠一区二区三区果冻| 亚洲精品视频观看| 91精品国产一区二区| 精品无人码麻豆乱码1区2区 | 欧美理论片在线| 香蕉乱码成人久久天堂爱免费| 欧美中文一区二区三区| 石原莉奈在线亚洲二区| 欧美精品一区二区三区高清aⅴ | 狠狠色丁香婷婷综合| 久久久久久久久久电影| gogogo免费视频观看亚洲一| 一区二区高清在线| 欧美一区二区视频在线观看2022 | 亚洲少妇30p| 欧美午夜精品免费| 久久99精品视频| 国产精品成人午夜| 欧美精品一卡两卡| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 国产一区二区三区四区在线观看| 国产女人水真多18毛片18精品视频| 99视频精品在线| 青青青伊人色综合久久| 国产精品毛片久久久久久| 欧美三级三级三级爽爽爽| 国产综合色精品一区二区三区| 中文字幕一区二区在线观看| 69堂国产成人免费视频| 成人福利电影精品一区二区在线观看| 亚洲第一福利一区| 国产精品久久久久久久久免费丝袜| 欧洲激情一区二区| 成人综合在线网站| 麻豆精品国产传媒mv男同| 亚洲色图在线看| 久久久国产一区二区三区四区小说 | 亚洲第一久久影院| 中文字幕免费一区| 欧美一区二区三区日韩| 在线精品视频免费观看| 岛国一区二区在线观看| 久久66热re国产| 日韩中文字幕亚洲一区二区va在线| 日本一区二区动态图| 日韩精品一区二区三区四区 | 粉嫩av亚洲一区二区图片| 天天av天天翘天天综合网| 国产精品国产a级| 久久一区二区视频| 精品美女一区二区| 欧美一区二区三区播放老司机| 欧美婷婷六月丁香综合色| 91色porny在线视频| 不卡的av电影| 成人教育av在线| 懂色av噜噜一区二区三区av| 国产精品综合一区二区| 免费观看在线综合| 麻豆国产欧美一区二区三区| 日本sm残虐另类| 欧美aaaaaa午夜精品| 奇米综合一区二区三区精品视频| 亚洲第一精品在线| 日韩激情在线观看| 青椒成人免费视频| 日韩av中文在线观看| 视频在线观看一区| 免费美女久久99| 麻豆高清免费国产一区| 国内精品视频一区二区三区八戒| 精品一区在线看| 久久国产三级精品| 国产精品66部| 成人精品鲁一区一区二区| 99免费精品视频| 日本精品一级二级| 欧美老肥妇做.爰bbww视频| 欧美精品vⅰdeose4hd| 日韩欧美亚洲一区二区| 久久一区二区三区国产精品| 欧美国产在线观看| 亚洲欧美日韩小说| 偷拍一区二区三区四区| 日本免费新一区视频 | 久久嫩草精品久久久精品| 国产精品色哟哟| 一区二区三区免费在线观看| 久久爱另类一区二区小说| 麻豆精品精品国产自在97香蕉| 国产精品自拍三区| 色综合久久88色综合天天免费| 欧美美女bb生活片| 国产欧美日韩不卡| 亚洲综合免费观看高清在线观看| 日韩av在线免费观看不卡| 国产.欧美.日韩| 欧美剧情片在线观看| 国产日韩亚洲欧美综合| 日韩一区中文字幕| 麻豆传媒一区二区三区| 91网站在线观看视频| 日韩视频免费观看高清完整版| 欧美国产一区在线| 亚洲成人精品在线观看| 风流少妇一区二区| 欧美日韩亚洲综合在线| 国产精品视频线看| 天天爽夜夜爽夜夜爽精品视频| 国产成人日日夜夜| 91精品国产综合久久久久久漫画 | 91女厕偷拍女厕偷拍高清| 欧美一卡二卡在线| 亚洲日本护士毛茸茸|