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

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

?? play.java

?? 用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;//當(dāng)前時間
	
	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;//玩家當(dāng)前的級別
	int rate;	//分?jǐn)?shù)
	int time;	//時間
	int mark;	//記分
	int level;	//級別
	int errCount;//錯誤
	int baseMark=20;//系統(tǒng)默認(rèn)值分?jǐn)?shù)大于此值時則增加速度
	private boolean IsStarted=false;//是否開始游戲
	int showCount;	//顯示字符數(shù)量
	int attackCount;//擊中數(shù)量
	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){//計算打字速度,時間,分?jǐn)?shù)
				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("線程關(guān)閉:"+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("分?jǐn)?shù):");
		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("設(shè)置");
		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));
		
		//計算分?jǐn)?shù)
		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("恢復(fù)");
					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);
	}
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区电影在线播| 国产欧美日韩久久| 一区二区在线观看视频| av在线一区二区三区| 亚洲欧美自拍偷拍色图| 91在线高清观看| 一区二区在线电影| 欧美精品久久一区二区三区| 久久国产福利国产秒拍| 国产亚洲一本大道中文在线| 色综合天天综合网国产成人综合天 | 欧美剧情电影在线观看完整版免费励志电影| 亚洲精品国产视频| 91精品在线观看入口| 激情深爱一区二区| 中文字幕制服丝袜一区二区三区| 色综合网色综合| 美女视频免费一区| 中文欧美字幕免费| 欧美日韩精品欧美日韩精品一综合| 麻豆免费看一区二区三区| 欧美激情一区在线| 欧美三区在线观看| 国产成人午夜电影网| 亚洲一区二区三区四区不卡| 精品久久国产老人久久综合| 91网址在线看| 男女激情视频一区| 亚洲精品成人精品456| 欧美大片在线观看| 91国产成人在线| 国产在线精品免费av| 伊人色综合久久天天人手人婷| 欧美一区二区福利在线| 91在线小视频| 国产一区 二区 三区一级| 一区二区三区精密机械公司| 26uuu亚洲综合色欧美| 欧美网站一区二区| 成人精品亚洲人成在线| 久久精品久久99精品久久| 亚洲精品国产无套在线观| 久久久天堂av| 日韩美女视频在线| 一本到高清视频免费精品| 激情深爱一区二区| 青青青爽久久午夜综合久久午夜| 国产精品久久久久久妇女6080| 日韩欧美高清在线| 538在线一区二区精品国产| 99综合影院在线| 成人少妇影院yyyy| 极品少妇xxxx精品少妇偷拍| 午夜精品久久久久久久99樱桃 | 国产精品视频你懂的| 欧美成人一区二区三区在线观看| 在线日韩av片| 94-欧美-setu| 国产成人在线色| 国产一区二区三区四区五区美女 | 美女一区二区三区| 五月天中文字幕一区二区| 亚洲三级在线播放| 中文字幕五月欧美| 国产精品毛片久久久久久| 精品国产免费人成在线观看| 91麻豆精品国产无毒不卡在线观看| 91黄视频在线| 在线观看日韩一区| 欧美午夜一区二区三区| 在线视频一区二区三| 色哟哟精品一区| 色综合激情五月| 一本大道久久精品懂色aⅴ| 懂色av一区二区夜夜嗨| 国产**成人网毛片九色| 丁香天五香天堂综合| 国产suv一区二区三区88区| 国产乱子轮精品视频| 国产成人精品综合在线观看| 国产精品88av| 丰满白嫩尤物一区二区| 成人av第一页| 91亚洲精品久久久蜜桃| 在线亚洲精品福利网址导航| 在线视频你懂得一区| 欧美视频一区二区三区四区| 欧美日韩不卡一区| 日韩三级视频在线观看| 精品成人私密视频| 国产精品全国免费观看高清| 中文字幕一区二区不卡 | 午夜精品视频在线观看| 丁香亚洲综合激情啪啪综合| 成人激情动漫在线观看| 色婷婷久久一区二区三区麻豆| 欧美在线观看一区二区| 日韩一区二区中文字幕| 久久精品视频免费| 一区二区在线观看免费| 男女性色大片免费观看一区二区| 国产一本一道久久香蕉| 91亚洲男人天堂| 欧美一区二区三区视频免费播放| 久久久亚洲国产美女国产盗摄| 亚洲欧美在线视频| 婷婷国产在线综合| 国产成人av一区二区三区在线| 91在线观看免费视频| 欧美一区三区二区| 国产免费观看久久| 亚洲国产裸拍裸体视频在线观看乱了| 美女在线观看视频一区二区| 不卡的av网站| 欧美r级在线观看| 日韩美女久久久| 精品一区二区免费看| 色偷偷一区二区三区| 日韩视频一区二区在线观看| 国产精品成人网| 另类综合日韩欧美亚洲| 91亚洲大成网污www| 精品国产乱码久久久久久图片| 亚洲人成在线播放网站岛国 | 一区二区三区中文免费| 国产一区二区三区日韩| 欧美日韩在线播放三区四区| 国产亚洲人成网站| 日日夜夜一区二区| 99久久精品国产导航| 日韩精品一区二区在线| 亚洲一级二级在线| 不卡一二三区首页| 国产精品久久夜| 久草精品在线观看| 欧美亚洲禁片免费| 亚洲视频你懂的| 国产成人精品亚洲日本在线桃色| 欧美日韩高清一区二区三区| 国产精品久久久久一区 | 国产网红主播福利一区二区| 天堂一区二区在线| 日本道色综合久久| 国产精品动漫网站| 国产麻豆精品视频| 日韩欧美不卡一区| 视频在线观看一区二区三区| 99国产精品久久久久久久久久| 久久这里都是精品| 韩国av一区二区| 精品国产一区久久| 免费成人在线视频观看| 欧美日韩中文字幕精品| 一区二区三区高清| 欧美性受xxxx黑人xyx性爽| 亚洲欧洲成人精品av97| 成人理论电影网| 国产欧美日韩另类一区| 国产精品538一区二区在线| 久久久久九九视频| 国产又黄又大久久| 国产欧美中文在线| 成人性生交大片免费看中文网站| 国产欧美精品一区| 成人精品小蝌蚪| 国产精品动漫网站| 91成人免费在线视频| 亚洲欧美日韩在线播放| 色婷婷亚洲综合| 亚洲一区二区三区四区在线观看 | 欧美日韩在线播| 日韩精品电影一区亚洲| 8v天堂国产在线一区二区| 丝袜美腿一区二区三区| 欧美美女激情18p| 免费观看久久久4p| 精品国产污污免费网站入口 | 亚洲永久免费av| 欧美男人的天堂一二区| 日本不卡高清视频| 2023国产精华国产精品| 国产剧情av麻豆香蕉精品| 国产精品网站在线播放| 99精品国产视频| 国产成人午夜99999| 国产精品久久影院| 欧美视频自拍偷拍| 日韩av高清在线观看| 久久一夜天堂av一区二区三区| 国产传媒欧美日韩成人| 中文字幕中文字幕一区| 欧美日韩小视频| 久久精品国产久精国产爱| 久久久777精品电影网影网 | 亚洲一区在线电影| 欧美成人乱码一区二区三区| 国产.欧美.日韩| 亚洲第一成人在线| 久久久久九九视频| 欧日韩精品视频|