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

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

?? play.java

?? 本文可以良好的練習打字
?? JAVA
字號:
package type;

import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.applet.*;
import java.net.URL;
	
public class Play extends JFrame{
	Container c=null;
	GamePanel[] games;
	JLabel[] labels;
	JButton jbtn_start;
	JButton	jbtn_set;
	JButton jbtn_pause;
	JButton	jbtn_exit;
	private long startTime;//開始游戲時間
	private long currentTime;//當前時間
	
	private URL this_url=null;//音頻文件的地址
	
	private static AudioClip errSound=null;//按鍵錯誤提示聲
	private static AudioClip backSound=null;
	private static AudioClip startMusic;//游戲開始音
	private static AudioClip addLevel;//玩家升級音
	private static AudioClip subLevel;//玩家降級音
	
	int curLevel;//玩家當前的級別
	int rate;	//分數
	int time;	//時間
	int mark;	//記分
	int level;	//級別
	int errCount;//錯誤
	int baseMark=20;//系統默認值分數大于此值時則增加速度
	private boolean IsStarted=false;//是否開始游戲
	int showCount;	//顯示字符數量
	int attackCount;//擊中數量
	Thread thread_start=null;//開始控制線程
	Thread thread_computer=null;//計算線程
	Thread thread_gameover=null;	
	
	
	public Play(String title,int showCount){
		super(title);
		
		this.showCount=showCount;
		this.setSize(70*showCount,600);	
		
		Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize();
		Dimension frameSize=this.getSize();
		
		if(frameSize.height>screenSize.height){
			frameSize.height=screenSize.height;
		}
		if(frameSize.width>screenSize.width){
			frameSize.width=screenSize.width;
		}
		
		this.setLocation((screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2);
		this.setBackground(Color.BLACK);
		this.setResizable(false);
		this.Init();
		this.setVisible(true);
		
		try{
			Class this_class=Class.forName("type.Play");
			
			this_url=this_class.getResource("../audio/errsound.au");
			errSound=Applet.newAudioClip(this_url);
			
			this_url=this_class.getResource("../audio/backsound.wav");
			backSound=Applet.newAudioClip(this_url);
			
			this_url=this_class.getResource("../audio/start.wav");
			startMusic=Applet.newAudioClip(this_url);
			
			this_url=this_class.getResource("../audio/addlevel.wav");
			addLevel=Applet.newAudioClip(this_url);
			
			this_url=this_class.getResource("../audio/sublevel.wav");
			subLevel=Applet.newAudioClip(this_url);
		}catch(Exception e){
			e.printStackTrace();
		}
		
		this.startMusic.play();
		
	}
	
	private class StartThread extends Thread{
		public void run(){	
			if(!IsStarted){
				Play.this.IsStarted=true;
				started();
			}
		}
	}
	
	private class ComputerThread extends Thread{
		public void run(){
			while(true){//計算打字速度,時間,分數
				try{
					this.sleep(1000);
				}catch(Exception e){
					
				}
				Play.this.computer();
			}
		}
	}
	
	
	public void threadStart(){
		Play.startMusic.stop();
		thread_start=new StartThread();
		//System.out.println("StartThread-------------------------");
		this.backSound.loop();//播放背景音樂
		thread_start.start();
	}
	
	public synchronized void resume(){
		for(int i=0;i<showCount;i++){
			if(games[i]!=null){
				games[i].resume();
			}
		}
		
	}
	public synchronized void stop(){
		this.IsStarted=!this.IsStarted;
		if(thread_start!=null){
			this.backSound.stop();
			thread_start.stop();
			thread_computer.stop();
			thread_start=null;
			thread_computer=null;
		}
		for(int i=0;i<showCount;i++){
			if(games[i]!=null){
				games[i].Down(false);
				System.out.println("線程關閉:"+i);
				games[i].stop();
			}
		}
		GamePanel.reSetStaticCount();
		
	}
	public synchronized void suspend(){
		for(int i=0;i<showCount;i++){
			if(games[i]!=null){
				games[i].suspend();
			}
		}
	}
	private void Init(){
		//初始化
		GamePanel.setMusic();
		games=new GamePanel[showCount];
		
		for(int i=0;i<showCount;i++){ 
			games[i]=new GamePanel("線程:"+i);
		}
		
		c=this.getContentPane();
		c.setLayout(new BorderLayout());
		int i=0;
		labels=new JLabel[10];
		labels[i++]=new JLabel("速度:");
		labels[i++]=new JLabel("0/0  ");
		labels[i++]=new JLabel("錯誤:");
		labels[i++]=new JLabel("0    ");
		labels[i++]=new JLabel("時間:");
		labels[i++]=new JLabel("0    ");
		labels[i++]=new JLabel("分數:");
		labels[i++]=new JLabel("0    ");
		labels[i++]=new JLabel("級別:");
		labels[i++]=new JLabel("0    ");
		JPanel south_Panel=new JPanel();
		JPanel center_Panel=new JPanel();
		for(int j=0;j<labels.length;j++){
			south_Panel.add(labels[j]);
		}
		i=0;
		jbtn_start=new JButton("開始");
		jbtn_set=new JButton("設置");
		jbtn_pause=new JButton("暫停");
		jbtn_exit=new JButton("退出");
		south_Panel.add(jbtn_start);
		south_Panel.add(jbtn_set);
		south_Panel.add(jbtn_pause);
		south_Panel.add(jbtn_exit);
		c.add(south_Panel,BorderLayout.SOUTH);
		center_Panel.setLayout(new GridLayout(1,showCount));
		for(i=0;i<showCount;i++){
			center_Panel.add(games[i]);
		}
		c.add(center_Panel,BorderLayout.CENTER);
		OnClickAdapter onClickListener=new OnClickAdapter();
		jbtn_start.addActionListener(onClickListener);
		jbtn_set.addActionListener(onClickListener);
		jbtn_pause.addActionListener(onClickListener);
		jbtn_exit.addActionListener(onClickListener);	
		this.addKeyListener(new KeyCheckAdaoter());
		//this.enableEvents(AWTEvent.WINDOW_EVENT_MASK);
	}
	  //Overridden so we can exit when window is closed
//	protected void processWindowEvent(WindowEvent e) {
	//   super.processWindowEvent(e);
	 //  if (e.getID() == WindowEvent.WINDOW_CLOSING) {
	   //		System.exit(0);
	 //  }
	//}
	public void started(){
		//System.out.println("started-------------------------");
		this.curLevel=1;
		thread_gameover=null;
		startTime=System.currentTimeMillis();//讀取游戲開始時間
		thread_computer=new ComputerThread();
		thread_computer.start();
		int j=0;
		int[] arrposflag=new int[showCount];
			
		for(int i=0;i<showCount;i++){
			arrposflag[i]=0;//開始所有線程
			games[i].start();
		
			//System.out.println("showCount-------------------------"+String.valueOf(i));
		}
		
		GamePanel temp=null;
		
		for(int i=0;i<showCount;i++){
			while(true){
				j=GamePanel.random.nextInt(showCount);
				if(arrposflag[j]==0){
					arrposflag[j]=1;
					if(temp!=null){
						try{
							Thread.sleep(1500);
						}catch(Exception e){
						}	
					}
					//System.out.println("games[j]-------------------------"+games[j]);
					temp=games[j];
					games[j].Down(true);
					break;	
				}
			}
		}
	}
	
	
	private class GameOverThread extends Thread{
		public void run(){
			Play.this.backSound.stop();
			GamePanel.gameOver.play();
			Play.this.stop();
			jbtn_start.setText("開始");
			JDialog dialog=new JDialog();
			dialog.setSize(200,100);
			dialog.setLocation((Play.this.getWidth()-dialog.getWidth())/2,
				(Play.this.getHeight()-dialog.getHeight())/2);
			dialog.setVisible(true);
		}
	}
	
	
	private void computer(){
		//計算速度
		if(GamePanel.GameOver){
			if(thread_gameover==null){
				thread_gameover=new GameOverThread();
				thread_gameover.start();
			}
			return;
		}
		int this_rate=0;
		int this_hits=0;
		for(int i=0;i<showCount;i++){
			this_rate+=games[i].getShowAllCount();
			this_hits+=games[i].getHitsCount();
		}
		this.labels[1].setText(Integer.toString(this_hits)+"/"+Integer.toString(this_rate));
		
		//計算時間
		this.currentTime=System.currentTimeMillis();
		int thisTime=(int)((this.currentTime-this.startTime)/1000);
		this.labels[5].setText(Integer.toString(thisTime)+"秒");
		
		//計算錯誤
		this.labels[3].setText(Integer.toString(this.errCount));
		
		//計算分數
		this.mark=this_hits*60/thisTime;
		this.labels[7].setText(Integer.toString(this.mark));
		
		//計算級別
		//System.out.println("計算級別");
		this.level=(this.mark-this.baseMark)/10;//10個字符為一級
		if(this.level<=0||this_hits<this.baseMark){
			this.level=1;
		}
		if(this.level>this.curLevel){
			Play.addLevel.play();
		}else if(this.level<this.curLevel){
			Play.subLevel.play();
		}
		this.curLevel=this.level;
		GamePanel.addSpeed(this.level);
		this.labels[9].setText(Integer.toString(this.level));
	}
	private void reComputer(){
		this.labels[1].setText("0/0  ");
		this.labels[3].setText("0    ");
		this.labels[5].setText("0    ");
		this.labels[7].setText("0    ");
		this.labels[9].setText("0    ");
	}
	
	
	private class KeyCheckAdaoter extends KeyAdapter{
		public void keyTyped(KeyEvent e){
			char keychar;
			keychar=e.getKeyChar();
			for(int i=0;i<showCount;i++){
				if (keychar==games[i].getChar()&&games[i].hasNomarl()){
					games[i].imageflag=true;
					return;
				}
			}
			Play.this.errSound.play();
			Play.this.errCount++;//錯誤的按鍵
		}	
	}
	
	private class OnClickAdapter implements ActionListener{
		public void actionPerformed(ActionEvent e){
			if(e.getSource()==jbtn_start){
				if(jbtn_start.getText().equals("開始")){
					jbtn_start.setText("停止");
					Play.this.threadStart();
				}else{
					jbtn_start.setText("開始");
					Play.this.stop();
				}
				Play.this.requestFocus(true);
			}else if(e.getSource()==jbtn_set){
				Play.this.requestFocus(true);
			}else if(e.getSource()==jbtn_pause){
				if(jbtn_pause.getText().equals("暫停")){
					jbtn_pause.setText("恢復");
					Play.this.suspend();
				}else{
					jbtn_pause.setText("暫停");
					Play.this.resume();
				}
				
				Play.this.requestFocus(true);
			}else if(e.getSource()==jbtn_exit){
				Play.this.requestFocus(true);
				System.exit(0);
			}
		}	
	}
	
	
	
	public static void main(String [] args){
		Play this_play=new Play("我的打字游戲--作者:楊柯--版本號:V1.0",12);
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
93久久精品日日躁夜夜躁欧美| 亚洲最大成人综合| 欧美区在线观看| 99精品久久99久久久久| 国产aⅴ精品一区二区三区色成熟| 美女视频黄a大片欧美| 日韩在线播放一区二区| 亚洲成人综合在线| 日本午夜一本久久久综合| 亚洲gay无套男同| 亚洲gay无套男同| 婷婷亚洲久悠悠色悠在线播放| 亚洲成人激情av| 日韩国产精品久久久久久亚洲| 偷拍日韩校园综合在线| 奇米影视一区二区三区| 精品一区二区在线观看| 国产精品白丝jk白祙喷水网站 | 成人综合在线观看| 国产91精品露脸国语对白| 成人h精品动漫一区二区三区| 国产91精品精华液一区二区三区| 成人精品gif动图一区| 91国偷自产一区二区三区成为亚洲经典| 色综合天天综合在线视频| 欧美男男青年gay1069videost| 日韩欧美一区二区久久婷婷| 久久久不卡网国产精品一区| 中文字幕在线观看不卡| 亚洲一级二级在线| 国产自产视频一区二区三区| 波多野结衣一区二区三区| 在线免费精品视频| 日韩欧美国产wwwww| 国产视频一区二区在线观看| 中文字幕在线一区免费| 亚洲成人777| 国产激情视频一区二区在线观看| 99免费精品视频| 欧美一级免费大片| 国产精品福利av| 蜜桃精品视频在线| 成人h动漫精品一区二区| 91麻豆精品国产91久久久久久 | 国产精品视频观看| 亚洲成人免费视频| 国产精品1024| 欧美日韩精品一区二区| 国产亚洲综合av| 琪琪久久久久日韩精品| 成人精品鲁一区一区二区| 91精品国产综合久久精品图片| 欧美激情一区二区三区| 蜜桃视频在线一区| 欧美三日本三级三级在线播放| 日本一区二区三区四区在线视频| 亚洲aⅴ怡春院| 91香蕉视频mp4| 国产日韩三级在线| 免费成人在线观看| 欧美日本韩国一区| 亚洲男人电影天堂| 不卡欧美aaaaa| 精品国产人成亚洲区| 天天综合日日夜夜精品| jlzzjlzz国产精品久久| 国产欧美日韩久久| 久久国产精品无码网站| 欧美精品久久99久久在免费线| 亚洲另类在线一区| 91日韩精品一区| 一色屋精品亚洲香蕉网站| 国产制服丝袜一区| 精品日韩一区二区三区免费视频| 日韩影院精彩在线| 欧美精品高清视频| 午夜av电影一区| 欧美日韩精品欧美日韩精品一综合| 综合久久久久综合| eeuss鲁片一区二区三区在线观看| 久久精品这里都是精品| 国产成人一区二区精品非洲| 精品国产乱码久久久久久久| 韩国毛片一区二区三区| 久久品道一品道久久精品| 国产中文字幕精品| 亚洲国产精品av| aa级大片欧美| 亚洲精品成a人| 欧美日韩在线免费视频| 天天操天天干天天综合网| 337p亚洲精品色噜噜噜| 日韩二区三区四区| 精品福利av导航| 成人性生交大片免费| 日韩码欧中文字| 欧美日韩在线三区| 久久99精品久久久久| 久久久久综合网| 91在线观看污| 日日摸夜夜添夜夜添国产精品| 日韩欧美国产1| 成人高清伦理免费影院在线观看| 亚洲色图欧美在线| 在线综合亚洲欧美在线视频| 狠狠网亚洲精品| 中文字幕一区二区三区色视频| 在线观看成人小视频| 麻豆精品国产91久久久久久| 国产精品入口麻豆九色| 欧美性色黄大片手机版| 激情综合色综合久久综合| 成人免费在线播放视频| 正在播放亚洲一区| 国产传媒日韩欧美成人| 亚洲国产一区二区三区| 久久精品视频一区二区三区| 欧美系列亚洲系列| 欧美性色黄大片| 紧缚捆绑精品一区二区| 一区二区三区在线影院| 精品乱人伦小说| 欧美亚洲高清一区二区三区不卡| 极品少妇xxxx精品少妇| 夜夜揉揉日日人人青青一国产精品 | 午夜国产精品影院在线观看| wwwwxxxxx欧美| 欧美视频一区二区| 99视频精品免费视频| 麻豆91精品视频| 亚洲一二三四在线| 国产精品久久久久aaaa樱花| 日韩欧美一区二区免费| 欧美日韩精品是欧美日韩精品| 成人午夜电影小说| 久久97超碰色| 婷婷国产在线综合| 亚洲国产一区二区三区青草影视| 亚洲国产精品成人综合色在线婷婷| 欧美一区二区三区在线| 欧洲亚洲精品在线| 91丨porny丨蝌蚪视频| 国产91富婆露脸刺激对白| 久99久精品视频免费观看| 午夜伦理一区二区| 亚洲高清免费视频| 亚洲自拍都市欧美小说| 亚洲三级在线免费| 亚洲少妇屁股交4| 亚洲欧洲日本在线| 国产精品美女www爽爽爽| 国产无人区一区二区三区| 日韩免费福利电影在线观看| 91麻豆精品国产91久久久久久久久 | 久久久亚洲精华液精华液精华液| 欧美久久一区二区| 欧美日韩免费在线视频| 在线观看日韩国产| 欧美亚州韩日在线看免费版国语版| 91丨porny丨最新| 91日韩精品一区| 日本韩国欧美一区| 欧美影片第一页| 欧美日韩精品系列| 日韩一区二区三区电影在线观看| 欧美一区日本一区韩国一区| 4438亚洲最大| 久久综合九色综合欧美亚洲| 久久久不卡影院| 中文在线一区二区| 综合久久久久久| 午夜精品福利一区二区蜜股av | 手机精品视频在线观看| 日韩av二区在线播放| 精品一区二区三区在线观看国产 | 亚洲人123区| 亚洲精选视频免费看| 亚洲午夜精品久久久久久久久| 无码av免费一区二区三区试看| 久久精品99久久久| 国产成人精品www牛牛影视| 99精品视频一区二区| 欧美日韩国产综合一区二区| 日韩欧美123| 国产精品日日摸夜夜摸av| 一区二区视频在线看| 秋霞影院一区二区| 国产91精品精华液一区二区三区| 色天天综合久久久久综合片| 欧美精品在线视频| 国产精品免费丝袜| 五月天一区二区| 久久99精品久久久久久动态图| 国产成人亚洲综合a∨婷婷图片| 91免费在线播放| 欧美成人三级电影在线| 一区二区中文字幕在线| 另类的小说在线视频另类成人小视频在线 | 亚洲一区在线电影| 国产一区二区三区四|