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

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

?? game.java

?? Java 開發的俄羅斯方塊游戲
?? JAVA
字號:
import java.awt.*;
import java.awt.event.*;
import java.util.Random;
import javax.swing.Timer;

public class Game extends Frame{
	private Choice speedControl;//游戲速度選擇控件
	private DrawTable drawTable;//控制游戲桌顯示
	private DrawNextShape drawNextShape;//顯示下一個游戲塊
	private  int delayTime;//塊下落的時間間隔,也就是游戲速度
	private final int speedTime = 800;//
	private Button startButton ;//開始按鈕
	private boolean isKeyEnable = false;//標識鍵盤輸入是否可用
	private Shape firstShape = randomShape();//產生第一個游戲塊
	private Shape nextShape = randomShape();//產生下第二個游戲塊
	private Timer timer;//計時器,讓游戲塊自動下落
	private int score = 0;//分數
	private Label scoreLabel;//顯示分數的標簽
	private Label speedControlLabel;//提示速度選擇的標簽
	private Label nextShapeLabel;//提示下一個游戲塊的標簽
	private Label myInformation;//顯示游戲制作者信息
	private Label noticeLabel;//提示標簽
	private Label noticContentLabel;//提示內容1
	private Label noticContentLabel2;//提示內容2
	
	//對游戲進行初始化
	public void inint(){
		
		this.setTitle("俄羅斯方塊");
		this.setLayout(null);
		this.setLocation(300, 200);
		this.setSize(500,500);
		this.setBackground(new Color(500555));
		this.addWindowListener(new WinClose());
		
		startButton = new Button("開始");
		startButton.setBounds(370, 400, 90, 30);
		startButton.setBackground(new Color(5555555));
		startButton.setFont(new Font("1",1,16));
		startButton.addActionListener(new StartButtonListener());
		startButton.setEnabled(true);
		startButton.addKeyListener(new MyKeyListener());
		this.add(startButton);

		
		scoreLabel = new Label("分數: "+score);
		scoreLabel.setBounds(370, 125, 90, 30);
		scoreLabel.setFont(new Font("1",1,16));
		scoreLabel.setBackground(new Color(55550255));
		this.add(scoreLabel);
		
		drawTable = new DrawTable();
		drawTable.setLocation(40, 50);
		drawTable.addKeyListener(new MyKeyListener());
		this.add(drawTable);
		
		drawNextShape = new DrawNextShape();
		drawNextShape.setLocation(370, 200);
		drawNextShape.addKeyListener(new MyKeyListener());
		this.add(drawNextShape);
		
		speedControlLabel = new Label("請選擇速度:");
		speedControlLabel.setFont(new Font("1",1,16));
		speedControlLabel.setBounds(370, 60, 100, 20);
		this.add(speedControlLabel);
		
		nextShapeLabel = new Label("下一個塊:");
		nextShapeLabel.setFont(new Font("1",1,16));
		nextShapeLabel.setBounds(370, 170, 100, 20);
		this.add(nextShapeLabel);
		
		
		
		noticeLabel = new Label("提示:");
		noticeLabel.setFont(new Font("1",1,16));
		noticeLabel.setBounds(370, 325, 100, 20);
		this.add(noticeLabel);
		
		noticContentLabel2 = new Label("請用方向鍵");
		noticContentLabel2.setFont(new Font("1",1,16));
		noticContentLabel2.setBounds(370, 345, 100, 20);
		this.add(noticContentLabel2);
		
		noticContentLabel = new Label("等待開始...");
		noticContentLabel.setFont(new Font("1",1,16));
		noticContentLabel.setBounds(370, 375, 100, 20);
		this.add(noticContentLabel);
		
		myInformation = new Label("版權所有:丁小偉 QQ:284983884 郵箱:dingxw92@yahoo.com.cn");
		myInformation.setFont(new Font("1",1,16));
		myInformation.setBounds(5, 460, 490, 30);
		this.add(myInformation);
		
		speedControl = new Choice();
		speedControl.setBounds(370,90,90,30);
		speedControl.setBackground(new Color(500500));
		speedControl.setFont(new Font(" ",1,16));
		speedControl.add("1");
		speedControl.add("2");
		speedControl.add("3");
		speedControl.add("4");
		speedControl.add("5");
		speedControl.add("6");
		speedControl.add("7");
		speedControl.add("8");	
		speedControl.addItemListener(new SpeedControlListener());
		speedControl.setEnabled(true);
		this.add(speedControl);
		
		delayTime = speedTime;
		timer = new Timer(delayTime,new TimeListener());
		
		this.addKeyListener(new MyKeyListener());
		
		firstShape.begin();
		nextShape.beforeBegin();
	}
	
	//產生隨機游戲塊
	private  Shape randomShape(){
		Random randomNumCreater =new Random();
		int randomNum = randomNumCreater.nextInt(7); 
		Shape  shape = null;
		switch(randomNum){
				case 0:shape = new Shape0();break;
				case 1:shape = new Shape1();break;
				case 2:shape = new Shape2();break;
				case 3:shape = new Shape3();break;
				case 4:shape = new Shape4();break;
				case 5:shape = new Shape5();break;
				case 6:shape = new Shape6();break;
				case 7:shape = new Shape7();break;
				default:break;
		}
		return shape; 
	}
	
	
	//游戲結束的一些處理
	public void gameOver(){
		isKeyEnable = false;
		timer.stop();
		drawTable.setEnabled(false);
		speedControl.setEnabled(true);
		noticContentLabel.setText("游戲結束");
		startButton.setLabel("我還要玩");
	}
	
	//當游戲塊不能下落時,調用此方法處理
	public void afterDownFalse(){
		addScore(firstShape.addPoint());
		scoreLabel.setText("分數: "+score);
		firstShape = nextShape;
		nextShape = randomShape();
		nextShape.beforeBegin();
		if(isKeyEnable == true){
			isKeyEnable = false;
			if(firstShape.begin() == false){
				gameOver();
			}
			else
				isKeyEnable = true;
		}
		else{
			if(firstShape.begin() == false)
				gameOver();
		}
	}
	
	public void addScore(int rows){
		if(rows!=0){
			switch(delayTime*1000/speedTime){
			case 1000 : score = (rows*2-1)*10 + score;break;
			case  875 : score = (rows*2-1)*20 + score;break;
			case  750 : score = (rows*2-1)*30 + score;break;
			case  625 : score = (rows*2-1)*40 + score;break;
			case  500 : score = (rows*2-1)*50 + score;break;
			case  375 : score = (rows*2-1)*60 + score;break;
			case  250 : score = (rows*2-1)*70 + score;break;
			case  125 : score = (rows*2-1)*80 + score;break;
			default : break;
			}
		}
	}
	
	//游戲重新開始時進行的一些處理
	public void gameRestart() {
		timer.stop();
		Table.init();
		firstShape = randomShape();
		nextShape = randomShape();
		drawNextShape.repaint();
		nextShape.beforeBegin();
		firstShape.begin();
		drawTable.repaint();
		isKeyEnable = true;	
		score = 0;
		scoreLabel.setText("分數: "+new Integer(score).toString());
		timer.start();
	}
	
	//時間監聽器
	public class TimeListener implements ActionListener{

		public void actionPerformed(ActionEvent e) {
			boolean b = firstShape.down();
			if(b == false)
				afterDownFalse();
			drawTable.repaint();
			drawNextShape.repaint();
		}	
	}
	
	//開始按鈕監聽器
	public class StartButtonListener implements ActionListener{
		public void actionPerformed(ActionEvent e) {
			if(startButton.getLabel().equals("開始")){
				noticContentLabel.setText("游戲進行中...");
				startButton.setLabel("暫停");
				timer.start();
				isKeyEnable = true;
				speedControl.setEnabled(false);
			}
			else if(startButton.getLabel().equals("暫停")){
				noticContentLabel.setText("游戲暫停...");
				startButton.setLabel("繼續");
				timer.stop();
				isKeyEnable = false;
				speedControl.setEnabled(false);
			}
			else if(startButton.getLabel().equals("繼續")){
				noticContentLabel.setText("游戲進行中...");
				startButton.setLabel("暫停");
				timer.start();
				isKeyEnable = true;
				speedControl.setEnabled(false);
			}
			else if(startButton.getLabel().equals("我還要玩")){
				noticContentLabel.setText("游戲進行中...");
				startButton.setLabel("暫停");
				speedControl.setEnabled(false);
				gameRestart();
			}
			
		}
		
	}
	
	//鍵盤監聽器 ,利用isKeyEnable標識是否響應鍵盤事件
	public class MyKeyListener implements KeyListener{

		public void keyPressed(KeyEvent e) {
			if(isKeyEnable){
				switch( e.getKeyCode()){
				case KeyEvent.VK_UP: firstShape.change();break;
				case KeyEvent.VK_DOWN:
					{
						if(firstShape.down() == false)
							afterDownFalse();
					};break;
				case KeyEvent.VK_LEFT: firstShape.left();break;
				case KeyEvent.VK_RIGHT: firstShape.right();break;			
				}
				drawTable.repaint();
				drawNextShape.repaint();
			}
		}
		public void keyReleased(KeyEvent e) {}
		public void keyTyped(KeyEvent e) {}
	}

	//速度選擇監聽器
	public class SpeedControlListener implements ItemListener{

		public void itemStateChanged(ItemEvent e) {
			if(e.getItem().equals("1")){
				delayTime = speedTime;
				timer.setDelay(delayTime);
			}
			else if(e.getItem().equals("2")){
				delayTime = speedTime*7/8;
				timer.setDelay(delayTime);
			}
			else if(e.getItem().equals("3")){
				delayTime = speedTime*6/8;
				timer.setDelay(delayTime);
			}
			else if(e.getItem().equals("4")){
				delayTime = speedTime*5/8;
				timer.setDelay(delayTime);
			}
			else if(e.getItem().equals("5")){
				delayTime = speedTime*4/8;
				timer.setDelay(delayTime);
			}
			else if(e.getItem().equals("6")){
				delayTime = speedTime*3/8;
				timer.setDelay(delayTime);
			}
			else if(e.getItem().equals("7")){
				delayTime = speedTime*2/8;
				timer.setDelay(delayTime);
			}
			else if(e.getItem().equals("8")){
				delayTime = speedTime*1/8;
				timer.setDelay(delayTime);
			}
		}		
	}
	
	//關閉主窗口
	public class WinClose extends WindowAdapter{
		public void windowClosing(WindowEvent e){
			System.exit(0);
		}
	}

	//主函數
	public static void main(String args[]){
		Game g = new Game();
		g.inint();
		g.setVisible(true);//這句必須要,要不看不見游戲桌!
	}
	
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99精品热视频| 一区二区三区在线观看动漫| 性做久久久久久| 欧美视频一区在线观看| 国产三级精品视频| 国产成人福利片| 精品福利在线导航| 国产呦萝稀缺另类资源| 久久综合九色欧美综合狠狠| 久久99深爱久久99精品| 日本一区二区三区视频视频| 青青草97国产精品免费观看 | 国产精品99久久久久久有的能看| 91黄色激情网站| 丝袜亚洲精品中文字幕一区| 69av一区二区三区| 蜜臀久久99精品久久久久久9| 日韩一区二区在线免费观看| 美女久久久精品| 国产精品嫩草影院com| 在线精品视频免费观看| 日本中文字幕一区二区视频| 久久丝袜美腿综合| 99精品国产一区二区三区不卡| 亚洲激情在线激情| 日韩欧美电影一二三| 国产成人午夜精品影院观看视频 | 奇米影视在线99精品| 久久久亚洲综合| 欧美日韩一级视频| 国产成人免费高清| 亚洲成a人片综合在线| 国产视频在线观看一区二区三区 | 国产一区二区美女| 中文字幕亚洲在| 日韩视频免费直播| 欧美日韩电影在线播放| 国产a精品视频| 久久精品国产精品亚洲精品| 一区二区高清免费观看影视大全 | 91免费看视频| 国产成人av在线影院| 七七婷婷婷婷精品国产| 亚洲v精品v日韩v欧美v专区| 亚洲欧洲av色图| 国产精品美女一区二区三区| 精品国产露脸精彩对白| 精品人在线二区三区| 制服丝袜日韩国产| 6080日韩午夜伦伦午夜伦| 色悠悠亚洲一区二区| 91在线观看一区二区| 成人精品视频网站| aaa国产一区| 成人国产亚洲欧美成人综合网| 国产一区啦啦啦在线观看| 久久精品国产99| 国产露脸91国语对白| 久99久精品视频免费观看| 精品一区二区av| 成人一级黄色片| 日本韩国一区二区三区| 欧美日韩情趣电影| 日韩一区二区三区四区| 日韩一区和二区| 国产精品久久福利| 一区二区三区中文在线观看| 午夜久久久久久| 精品亚洲免费视频| 成人国产在线观看| 56国语精品自产拍在线观看| 久久久综合激的五月天| 悠悠色在线精品| 精品一区二区三区免费毛片爱| 国产精品一区二区三区四区| 色综合激情五月| 欧美成人三级电影在线| 国产精品国产精品国产专区不蜜 | 亚洲国产视频一区| 久久99精品国产.久久久久| 91亚洲精品一区二区乱码| 欧美丰满美乳xxx高潮www| 久久久久久久综合日本| 日本亚洲欧美天堂免费| 国产乱人伦偷精品视频不卡| 欧美在线啊v一区| 亚洲国产高清aⅴ视频| 肉色丝袜一区二区| 成人精品视频.| 国产三级三级三级精品8ⅰ区| 五月婷婷激情综合网| 91久久免费观看| 亚洲青青青在线视频| 北条麻妃一区二区三区| 久久久久久日产精品| 麻豆国产欧美一区二区三区| 久久久久久免费网| 久久电影网站中文字幕| 91精品国产综合久久久久久久| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 美女脱光内衣内裤视频久久影院| 欧美系列日韩一区| 亚洲国产成人精品视频| 欧美视频在线不卡| 日韩av电影免费观看高清完整版在线观看| av成人老司机| 亚洲高清不卡在线| 欧美日韩国产高清一区| 午夜精品123| 久久亚洲私人国产精品va媚药| 极品美女销魂一区二区三区| 久久久精品国产免费观看同学| 国产精品一卡二| 亚洲精品成人精品456| 欧美日韩在线播| 久久99国内精品| 中文字幕综合网| 欧美日韩一区二区三区高清| 精品午夜久久福利影院| 国产精品久久夜| 欧美日韩电影一区| 国产69精品久久99不卡| 亚洲免费av高清| 欧美变态tickling挠脚心| 国产一区日韩二区欧美三区| 午夜伦理一区二区| 欧美人xxxx| 亚洲成人免费影院| 欧美亚洲国产怡红院影院| 国产精品天美传媒沈樵| 99re8在线精品视频免费播放| 中文字幕一区二区三区乱码在线| 亚洲六月丁香色婷婷综合久久| 婷婷夜色潮精品综合在线| 欧美日韩一级片在线观看| 风流少妇一区二区| 视频一区视频二区中文| 亚洲视频免费在线| 国产精品无圣光一区二区| 色94色欧美sute亚洲线路二| 国产成人日日夜夜| 青椒成人免费视频| 性久久久久久久久久久久| 日韩美女视频在线| 成人晚上爱看视频| 一二三四区精品视频| 精品嫩草影院久久| 3atv一区二区三区| 欧美丰满少妇xxxbbb| 欧美狂野另类xxxxoooo| 成av人片一区二区| 久久精品国产久精国产| 亚洲1区2区3区4区| 青青草原综合久久大伊人精品| 一区二区三区四区激情| 亚洲综合在线五月| 亚洲成人激情社区| 美国十次综合导航| 国产一区 二区 三区一级| 国产综合成人久久大片91| 国产乱子伦视频一区二区三区| 国产精品中文字幕一区二区三区| 国产黄人亚洲片| 99综合影院在线| 欧美日韩mp4| 久久这里只精品最新地址| 中文字幕不卡三区| 亚洲国产精品久久人人爱蜜臀| 日欧美一区二区| 国产.精品.日韩.另类.中文.在线.播放 | 日本一区二区三区在线观看| 中文字幕一区二区三区色视频 | 一区二区三区四区精品在线视频| 一级中文字幕一区二区| 麻豆国产欧美一区二区三区| 国产精品一区一区三区| 欧美福利一区二区| 国产精品不卡一区| 精品中文av资源站在线观看| 97久久人人超碰| 国产午夜精品一区二区 | 欧美一区二区播放| 国产精品国产三级国产三级人妇 | 欧美国产日本视频| 日韩和欧美的一区| 91免费国产在线| 国产亚洲精品福利| 狠狠色综合日日| 欧美一二三区精品| 日韩中文字幕不卡| 欧美亚男人的天堂| 亚洲免费av高清| 成人高清视频在线| 亚洲国产精品t66y| 国产一区二区在线影院| 日韩免费高清电影| 蜜臀久久久久久久| 日韩欧美一级二级| 久久精品国产成人一区二区三区| 在线播放欧美女士性生活|