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

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? mytt.java

?? 用j2me做的打字練習(xí)手機(jī)游戲
?? JAVA
字號(hào):
import java.io.IOException;
import java.io.InputStream;
import java.util.Random;
import java.util.Vector;

import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Font;
import javax.microedition.lcdui.Graphics;
import javax.microedition.media.Manager;
import javax.microedition.media.MediaException;
import javax.microedition.media.Player;
import javax.microedition.midlet.MIDlet;

public class mytt extends Canvas implements Runnable {
	int state = STATE_MENU;      //狀態(tài)變量,初始變量為菜單

	String[] menus = { "開始游戲", "關(guān)于游戲", "退出游戲" };

	final static int STATE_MENU = 1;      //游戲的三種主要狀態(tài)
	final static int STATE_ABOUT = 2;
	final static int STATE_GAME = 3;

	static int width, height;    //屏幕寬度和高度,設(shè)置為靜態(tài)變量的目的是便于在該類之外使用
	int curMenu;                 //當(dāng)前菜單選項(xiàng)

	Vector v = new Vector();     //用于存儲(chǔ)字符對(duì)象

	int x;                       //字符對(duì)象的X坐標(biāo)值
	int sorce;                   //得分
	int life;                    //生命值
	int charcount;               //屏幕上的字符個(gè)數(shù)
	int downspeed;               //下落的速度
	int pass1=1;                 //關(guān)卡狀態(tài)
	int p1=0;                    //用于控制刷屏,很奇怪,但是這個(gè)地方我還不清楚為什么,僅僅是為了解決問(wèn)題引入的變量
	int dis;                     //控制下落字符之間的距離
	int sleeptime;               //線程的睡眠時(shí)間
	playmusic pm=new playmusic();//背景音樂(lè)播放線程
	MIDlet midlet;

	public mytt(MIDlet midlet) {
		this.midlet=midlet;
		setFullScreenMode(true);
		width = this.getWidth();        //獲取屏幕寬度
		height = this.getHeight();      //設(shè)置初始值
		life=10;                        //設(shè)置初始生命值
		new Thread(this).start();
		pm.start();
	}

	protected void paint(Graphics g) {
		// TODO Auto-generated method stub
		switch (state) {
		case STATE_MENU:                       //當(dāng)前狀態(tài)為“菜單”狀態(tài)
			g.setColor(0);                     //設(shè)置前景色為黑色
			g.fillRect(0, 0, width, height);   //用前景色繪制矩形,作用是清屏

			int y0 = 150;                     
			g.setFont(Font.getFont(Font.FACE_SYSTEM, Font.STYLE_BOLD| Font.STYLE_ITALIC, Font.SIZE_LARGE));  //設(shè)置文字所用字體樣式
			g.setColor(0xff1010);             
			g.drawString("手機(jī)版打字游戲",width/2 ,height/3-20,Graphics.TOP|Graphics.HCENTER);
		
			for (int i = 0; i < menus.length; i++) {         //創(chuàng)建一個(gè)循環(huán)菜單
				if (i == curMenu) {                          //設(shè)置當(dāng)前菜單選項(xiàng)的顯示樣式   
					g.setColor(0xff00ff00);
					g.setFont(Font.getFont(Font.FACE_SYSTEM, Font.STYLE_BOLD
							| Font.STYLE_ITALIC, Font.SIZE_LARGE));
					g.drawString(menus[i], width / 2, y0 + 30 * i,
							Graphics.HCENTER | Graphics.TOP);
				} else {
					g.setColor(0xff00ff00);
					g.setFont(Font.getDefaultFont());
					g.drawString(menus[i], width / 2, y0 + 30 * i,
							Graphics.HCENTER | Graphics.TOP);
				}
			}
			g.setColor(0xff0000ff);
			g.setFont(Font.getDefaultFont());
			
			break;
		case STATE_ABOUT:     //當(dāng)前狀態(tài)如果是“關(guān)于游戲”
			g.setColor(150);
			g.fillRect(0, 0, width,height);
			g.setColor(0xffffeeee);
			g.setFont(Font.getFont(Font.FACE_SYSTEM, Font.STYLE_BOLD| Font.STYLE_PLAIN, Font.SIZE_MEDIUM));
			g.drawString("這是一款簡(jiǎn)單手機(jī)打字練習(xí)游戲,", 5,10, Graphics.TOP|Graphics.LEFT);
			g.drawString("如果你玩過(guò)PC上的tt游戲,", 5,40, Graphics.TOP|Graphics.LEFT);
			g.drawString("相信你很快可以上手!", 5,70, Graphics.TOP|Graphics.LEFT);
			g.drawString("按“*”返回主菜單", width/2,height/4+180, Graphics.TOP|Graphics.HCENTER);
			break;
		case STATE_GAME:        //當(dāng)前狀態(tài)是“開始游戲”
				g.setColor(255, 255, 255);
				g.fillRect(0, 0, width, height);
				g.setFont(Font.getFont(Font.FACE_SYSTEM,Font.STYLE_BOLD,Font.SIZE_LARGE));
				g.setColor(0xff0000ff);
				g.drawString("瘋 狂 打 字 游 戲", width/2,5,Graphics.TOP|Graphics.HCENTER);
				g.drawLine(0, 26, 390,26);
				g.drawLine(0, 30, 390,30);
				g.setFont(Font.getFont(Font.FACE_SYSTEM,Font.STYLE_BOLD,Font.SIZE_MEDIUM));
				g.setColor(0xffff0000);
				g.drawLine(0,height-25, 395,height-25);
				g.drawLine(0,height-27, 395,height-27);
				g.drawString("得分是:"+sorce+"     生命:"+life +"     第"+pass1+"關(guān)", 20,height-20,Graphics.TOP|Graphics.LEFT);
				
				Random r = new Random();
				for (int i = 0; i < v.size(); i++) {

					g.setColor(Math.abs(r.nextInt()) % 255,    //設(shè)置字符變換的顏色
							Math.abs(r.nextInt()) % 255,
							Math.abs(r.nextInt()) % 255);
					
					zm z = (zm) v.elementAt(i);
					g.drawChar(z.zms, z.x, z.y, Graphics.TOP | Graphics.LEFT);

				}
				
				if(sorce==50 && p1<2)    //當(dāng)分?jǐn)?shù)達(dá)到50的時(shí)候升級(jí),在屏幕上進(jìn)行提示玩家已經(jīng)升級(jí)
				{
					p1++;
					v.removeAllElements();   //把第一關(guān)中的所有對(duì)象清除
					g.setColor(100,100,100);
					g.fillRect(0, 0, width, height);
					g.setFont(Font.getFont(Font.FACE_SYSTEM,Font.STYLE_BOLD,Font.SIZE_LARGE));
					g.setColor(0xffff0000);
					g.drawString("恭喜你進(jìn)入第二關(guān)",width/2,height/2, Graphics.TOP | Graphics.HCENTER);
					try {
						Thread.sleep(3000);
						
					} catch (InterruptedException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
					
				}
			
						
			if(life<=0)    //當(dāng)生命值小于0時(shí),清屏,顯示Game Over字樣三秒鐘,然后銷毀midlet
			{
				g.setColor(100,100,100);
				g.fillRect(0, 0, width, height);
				g.setFont(Font.getFont(Font.FACE_SYSTEM,Font.STYLE_BOLD,Font.SIZE_LARGE));
				g.setColor(0xffff0000);
				g.drawString("GAME  OVER",width/2,height/2, Graphics.TOP | Graphics.HCENTER);
				try {
					Thread.sleep(3000);
					
				} catch (InterruptedException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				//midlet.notifyPaused();
				midlet.notifyDestroyed();
			}
			
			
			break;

		}
	}




	protected void keyPressed(int keyCode) {
		// TODO Auto-generated method stub
		int ga = getGameAction(keyCode);

		switch (state) {

		case STATE_MENU:
			switch (ga) {
			case Canvas.UP:
				if(curMenu==0)curMenu=menus.length;
				curMenu = (curMenu - 1) % menus.length;
				break;
			case Canvas.DOWN:
				curMenu = (curMenu + 1) % menus.length;
				break;

			case Canvas.FIRE:
				switch (curMenu) {
				case 0:
					state = STATE_GAME;
					break;
				case 1:
					state = STATE_ABOUT;
					break;

				case 2:
					 midlet.notifyDestroyed();
					break;

				}

				break;
			}
			break;
		case STATE_ABOUT:
			if (keyCode == Canvas.KEY_STAR) 
				state = STATE_MENU;
			break;
		case STATE_GAME:

			if (keyCode == Canvas.KEY_STAR) {
				state = STATE_MENU;
			} else {
				if(keyCode==Canvas.KEY_NUM0)
				{
					for(int i=0;i<v.size();i++)
					{
						zm z=(zm)v.elementAt(i);
						if(z.zms=='0')
						{	sorce++;
							v.removeElementAt(i);
							break;
						}
					}
				}
				if(keyCode==Canvas.KEY_NUM1)
				{
					for(int i=0;i<v.size();i++)
					{
						zm z=(zm)v.elementAt(i);
						if(z.zms=='1')
						{	sorce++;
							v.removeElementAt(i);
							break;
						}
					}
				}
				if(keyCode==Canvas.KEY_NUM2)
				{
					for(int i=0;i<v.size();i++)
					{
						zm z=(zm)v.elementAt(i);
						if(z.zms=='2')
						{	sorce++;
							v.removeElementAt(i);
							break;
						}
					}
				}
				if(keyCode==Canvas.KEY_NUM3)
				{
					for(int i=0;i<v.size();i++)
					{
						zm z=(zm)v.elementAt(i);
						if(z.zms=='3')
						{	sorce++;
							v.removeElementAt(i);
							break;
						}
					}
				}
				if(keyCode==Canvas.KEY_NUM4)
				{
					for(int i=0;i<v.size();i++)
					{
						zm z=(zm)v.elementAt(i);
						if(z.zms=='4')
						{	sorce++;
							v.removeElementAt(i);
							break;
						}
					}
				}
				if(keyCode==Canvas.KEY_NUM5)
				{
					for(int i=0;i<v.size();i++)
					{
						zm z=(zm)v.elementAt(i);
						if(z.zms=='5')
						{	sorce++;
							v.removeElementAt(i);
							break;
						}
					}
				}
				if(keyCode==Canvas.KEY_NUM6)
				{
					for(int i=0;i<v.size();i++)
					{
						zm z=(zm)v.elementAt(i);
						if(z.zms=='6')
						{
							v.removeElementAt(i);
							break;
						}
					}
				}
				if(keyCode==Canvas.KEY_NUM7)
				{
					for(int i=0;i<v.size();i++)
					{	
						zm z=(zm)v.elementAt(i);
						if(z.zms=='7')
						{	sorce++;
							v.removeElementAt(i);
							break;
						}
					}
				}
				if(keyCode==Canvas.KEY_NUM8)
				{
					for(int i=0;i<v.size();i++)
					{
						zm z=(zm)v.elementAt(i);
						if(z.zms=='8')
						{	sorce++;
							v.removeElementAt(i);
							break;
						}
					}
				}
				if(keyCode==Canvas.KEY_NUM9)
				{
					for(int i=0;i<v.size();i++)
					{
						zm z=(zm)v.elementAt(i);
						if(z.zms=='9')
						{	sorce++;
							v.removeElementAt(i);
							break;
						}
					}
				}
				
			}
			break;
		}

		repaint();   //重繪屏幕

	}

	public void run() {
		// TODO Auto-generated method stub

		while (true) {
			
			
			
			
			if(sorce==50){
				pass1=2;
								
			}
			
			if(state == STATE_GAME){
				dis=5;
				charcount=10;
				downspeed=5;
			
			if(pass1==1){
				sleeptime=200;               //線程的睡眠時(shí)間用于控制重繪頻率,表現(xiàn)為字符的下落速度
			}else{
				sleeptime=130;
			}
				
			}
			
			if (v.size() < charcount) {
				zm z = new zm();
				v.addElement(z);
			}
			
				
			for(int j=0;j<dis;j++){                   //從縱向拉開字符之間的間距
			for (int i = 0; i < v.size(); i++) {
				zm z = (zm) v.elementAt(i);
				z.y += downspeed;
				if(z.y>=height-40)                  //當(dāng)字符的y坐標(biāo)超出下面的橫線時(shí),生命減1,并將字符從V中移除
				{
					life--;
					v.removeElementAt(i);
				}
			}
			this.repaint();                          //重繪屏幕
			System.out.println(sleeptime);
			try {
				Thread.sleep(sleeptime);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			}
		}
	}
	
	
	class zm {   // 這是一個(gè)內(nèi)部類,因?yàn)樗玫剿乃拗黝愔械淖兞?		int x;

		char zms;

		char s[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' };

		int y;
		Random r = new Random();
		public zm() {
			y = 30;            //字符的初始y坐標(biāo)
			int i = Math.abs(r.nextInt()) % s.length;   //數(shù)組隨機(jī)下標(biāo)
			zms = s[i];
			x = Math.abs(r.nextInt()) % (width-20);  // 字符的初始x坐標(biāo)
		}

	}


}

class playmusic extends Thread{
	Player player;			     //音樂(lè)播放器
	InputStream is;			     //音樂(lè)輸入流
	public void run()
	{
		try 
		{
			is=getClass().getResourceAsStream("/town.mid");			//創(chuàng)建音樂(lè)播放器
			player=Manager.createPlayer(is,"audio/midi");
			player.realize();
			player.setLoopCount(-1);		//循環(huán)播放背景音樂(lè)
			player.start();
		} 
		catch (MediaException e) 
		{
			e.printStackTrace();
		}
		catch (IOException e)
		{
			e.printStackTrace();
		}
		
	}
	}
	

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩中文国产| 日韩伦理电影网| 久草热8精品视频在线观看| 在线91免费看| 日本麻豆一区二区三区视频| 91精品国产综合久久久蜜臀粉嫩| 日韩国产精品久久久| 欧美一区二区三区爱爱| 极品少妇一区二区| 国产精品女同一区二区三区| 成人av小说网| 一区二区三区四区中文字幕| 欧美精品一卡二卡| 国产老女人精品毛片久久| 中文字幕+乱码+中文字幕一区| 91亚洲精华国产精华精华液| 亚洲综合精品自拍| 日韩一区二区三| 成人黄色小视频| 午夜婷婷国产麻豆精品| 精品美女在线观看| 97久久超碰国产精品| 亚洲午夜激情网页| 久久久一区二区三区| www.欧美日韩| 美女在线视频一区| 中文字幕一区二区在线观看 | 亚洲特黄一级片| 欧美日韩一区二区三区免费看| 日本伊人色综合网| 久久亚洲二区三区| 欧美亚洲动漫制服丝袜| 韩国午夜理伦三级不卡影院| 亚洲日本va午夜在线影院| 制服丝袜成人动漫| 99久久精品免费看国产免费软件| 日韩一区精品字幕| 国产精品久久三区| 日韩欧美成人一区| 91麻豆免费看| 国内精品伊人久久久久av一坑 | 久久久久久97三级| 欧洲av在线精品| 国产精品1区2区| 午夜不卡av免费| 亚洲天堂免费在线观看视频| 2023国产精华国产精品| 欧美日本一区二区在线观看| gogo大胆日本视频一区| 国产一区二区不卡| 日本视频一区二区| 亚洲成精国产精品女| 国产精品久久久久久久浪潮网站| 91精品一区二区三区在线观看| 一本到不卡免费一区二区| 国产成人午夜视频| 另类小说综合欧美亚洲| 亚洲va国产天堂va久久en| 国产精品理论在线观看| 精品成人一区二区三区四区| 欧美精品日韩一本| 欧美在线制服丝袜| 91蝌蚪porny| 不卡一卡二卡三乱码免费网站 | 成人午夜电影小说| 国产一区二区伦理片| 日韩av二区在线播放| 亚洲午夜久久久久久久久久久| 国产精品久久久久久久裸模| 中文成人综合网| 欧美精品一区二区三区在线| 欧美一区二区三区四区视频| 91麻豆精品国产91久久久使用方法 | 欧美一级理论性理论a| 欧美午夜宅男影院| 在线观看一区二区精品视频| 97久久精品人人做人人爽| 成人av电影免费观看| 成人午夜视频网站| 9l国产精品久久久久麻豆| 成人高清免费观看| 91在线国内视频| 色综合一个色综合亚洲| av在线播放成人| 春色校园综合激情亚洲| 成人小视频免费观看| 粉嫩高潮美女一区二区三区| 成人免费视频视频在线观看免费 | 国产欧美视频在线观看| 国产三级欧美三级日产三级99| 欧美精品一区二区高清在线观看| 精品国产123| 欧美国产精品中文字幕| 国产精品不卡一区| 亚洲在线观看免费| 日韩av在线发布| 国产一区二区三区在线观看免费 | 在线电影欧美成精品| 欧美一区二区三区视频免费| 欧美成人在线直播| 日本一区二区成人在线| 一区二区三区日韩精品视频| 婷婷久久综合九色国产成人 | 制服.丝袜.亚洲.中文.综合| 精品乱人伦小说| 国产精品乱码一区二区三区软件| 亚洲男人的天堂在线aⅴ视频| 亚洲乱码国产乱码精品精可以看| 亚洲午夜影视影院在线观看| 久久99精品久久久久婷婷| 国产成人在线视频免费播放| 成人a级免费电影| 欧美日韩一区二区三区高清| wwww国产精品欧美| 亚洲精品高清视频在线观看| 青青草精品视频| 成人不卡免费av| 91精品免费在线| 国产精品每日更新在线播放网址| 一区二区三区.www| 国产精品中文欧美| 欧洲亚洲国产日韩| 久久久亚洲欧洲日产国码αv| 亚洲人一二三区| 国产在线观看一区二区| 欧美视频中文字幕| 欧美激情一区二区三区蜜桃视频| 亚洲国产欧美另类丝袜| 国产成人综合亚洲网站| 欧美精品tushy高清| 国产精品毛片久久久久久久| 免费高清在线一区| 色哟哟国产精品| 久久久久免费观看| 日日骚欧美日韩| 一本大道久久a久久精二百| ww久久中文字幕| 丝袜亚洲精品中文字幕一区| 99国产精品一区| 国产日本欧洲亚洲| 精一区二区三区| 欧美日韩亚洲高清一区二区| 国产精品免费丝袜| 国产一区在线观看视频| 欧美日韩国产另类不卡| 亚洲色图制服丝袜| 东方aⅴ免费观看久久av| 日韩欧美专区在线| 亚洲www啪成人一区二区麻豆| 不卡视频免费播放| 亚洲国产精品精华液2区45| 91浏览器打开| 国产日本欧洲亚洲| 国产精品中文字幕日韩精品| 精品国产91久久久久久久妲己| 日韩高清不卡一区二区三区| 欧美性色欧美a在线播放| 亚洲天堂av老司机| 91在线精品秘密一区二区| 中文在线一区二区| 成人午夜免费电影| 国产免费成人在线视频| 国产一区二区三区免费看| 日韩欧美另类在线| 奇米一区二区三区| 日韩一级完整毛片| 六月丁香婷婷色狠狠久久| 日韩欧美不卡一区| 国产一区二区成人久久免费影院 | 国产精品自拍网站| 亚洲精品一区二区三区精华液| 日本少妇一区二区| 欧美电影免费观看高清完整版在线| 青娱乐精品视频| xvideos.蜜桃一区二区| 国产馆精品极品| 国产精品精品国产色婷婷| 99久久99久久免费精品蜜臀| 亚洲欧美一区二区三区极速播放 | 丝袜美腿亚洲一区| 777午夜精品免费视频| 日韩1区2区3区| 欧美精品一区二区三区在线播放| 国产乱理伦片在线观看夜一区 | 一区二区三区在线观看欧美| 91国产丝袜在线播放| 亚洲福中文字幕伊人影院| 欧美日韩精品系列| 精彩视频一区二区三区| 国产人伦精品一区二区| 久久久久久久久免费| 成人精品视频.| 亚洲 欧美综合在线网络| 日韩三级免费观看| 国产大陆a不卡| 亚洲综合av网| 欧美电影免费观看高清完整版在线 | 日韩av二区在线播放| 国产亚洲一区二区三区| 97国产一区二区|