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

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

?? singletetirs.java

?? java2 游戲設計書的全部源碼
?? JAVA
字號:
/*程序:SingleTetirs.java
 *說明:單一俄羅斯方塊游戲類
 */

import java.awt.*;
import java.awt.event.*;
import java.util.*;

//單一磚塊組游戲類
public class SingleTetirs implements Runnable{
	
Graphics g;//繪圖區
Component c;
Thread DownThread;
long GAME_SPEED;//紀錄游戲速度
long GAME_SCORE;//紀錄游戲分數
long GAME_LEVEL;//紀錄游戲等級
long GAME_LINE;//紀錄游戲消除行數
boolean GAME_RUNNING;//紀錄游戲是否進行中
Draw d;//畫出磚塊方式

int MAPX;//地圖X坐標
int MAPY;//地圖Y坐標

int MAP_ARRAY[][];//地圖數組
int MAP_SHOW_ARRAY[][];//地圖顯示數組(與移動磚塊組結合之數組)
Color MAP_COLOR_ARRAY[][];//地圖顏色數組

int GRIDX;//x軸格數
int GRIDY;//y軸格數

int BRICK_WIDTH;//單一磚塊_寬	
int BRICK_SIDE;//單一磚塊_邊

int NEXT_BRICK_NUMBER;//下一個磚塊組顯示數量

boolean IS_SHOW_NEXT;//是否顯示下一個磚塊組

int NOW_BRICK;//現在動作磚塊組編號
int NOW_BRICK_DIRECT;//現在動作磚塊組的方向
int NOW_BRICK_X;//現在動作磚塊組的x坐標
int NOW_BRICK_Y;//現在動作磚塊組的y坐標
SuperBrick NowBrick;//現在動作的磚塊組
Color NOW_BRICK_COLOR;//現在動作磚塊組的顏色

ArrayList BrickArray;//所有磚塊組類數組
ArrayList NextBrickArray;//下一個磚塊組儲存數組
ArrayList NextBrickColorArray;//下一個磚塊組儲存數組

public SingleTetirs(Graphics g,//繪圖區
				  int mapx,int mapy,//地圖坐標
				  int gridx,int gridy,//地圖方格數
				  int brick_width,//磚塊組寬
				  int brick_side,//磚塊組邊
				  int next_brick_number,//顯示下一個磚塊組數量
				  boolean is_show_next,//是否顯示下一個磚塊組
				  Component c){//組件
	//初始各參數
	this.c=c;
	this.g=g;
	this.MAPX=mapx;
	this.MAPY=mapy;
	this.GRIDX=gridx;
	this.GRIDY=gridy;
	this.BRICK_WIDTH=brick_width;
	this.BRICK_SIDE=brick_side;
	this.NEXT_BRICK_NUMBER=next_brick_number;
	this.IS_SHOW_NEXT=is_show_next;
	this.MAP_ARRAY=new int[GRIDX][GRIDY];
	this.MAP_SHOW_ARRAY=new int[GRIDX][GRIDY];
	this.MAP_COLOR_ARRAY=new Color[GRIDX][GRIDY];
	this.NOW_BRICK_X=0;
	this.NOW_BRICK_Y=0;
	this.GAME_SPEED=1000;
	this.GAME_SCORE=0;
	this.GAME_LEVEL=1;
	this.GAME_LINE=0;
	
	//將地圖數組歸零
	for(int i=0;i<GRIDX;i++){
		for(int j=0;j<GRIDY;j++){
			this.MAP_ARRAY[i][j]=0;
			this.MAP_SHOW_ARRAY[i][j]=0;
		}			
	}
	
	//加入所有磚塊組類型
	BrickArray=new ArrayList();//建立儲存磚塊組型態的數組
	BrickArray.add(new Brick_BB());
	BrickArray.add(new Brick_I());
	BrickArray.add(new Brick_L());
	BrickArray.add(new Brick_UL());
	BrickArray.add(new Brick_UT());
	BrickArray.add(new Brick_UZ());
	BrickArray.add(new Brick_Z());
	
	//產生下一磚塊組數據
	NextBrickArray=new ArrayList();//建立儲存預備磚塊組編號的數組
	NextBrickColorArray=new ArrayList();//建立儲存預備磚塊組編號的數組
	for(int i=0;i<(NEXT_BRICK_NUMBER+1);i++){
		createNextBrick();
	}

	//建立繪出磚塊組對象
	d=new Draw(this);
	
	//畫出外框
	d.DrawMapFrame(0,0,GRIDX*BRICK_WIDTH+2*5,GRIDY*BRICK_WIDTH+2*5,5);
	d.DrawMapFrame(290,0,200,350,5);//預備方塊外框
	d.DrawMapFrame(290,350,200,140,5);//游戲數據外框
	
	showNextBrickGroup();//顯示提示方塊組
	addNextBrick();//新增一個提示方塊
	showNextBrick();//顯示現在動作方塊
	
	updateGame(0);//更新游戲數據
	
	//產生控制下降的線程
	DownThread=new Thread(this);
	DownThread.start();
}

//重繪窗口
public void paint(){
	//畫出外框
	d.DrawMapFrame(0,0,GRIDX*BRICK_WIDTH+2*5,GRIDY*BRICK_WIDTH+2*5,5);
	d.DrawMapFrame(290,0,200,350,5);//預備方塊
	d.DrawMapFrame(290,350,200,140,5);//游戲數據	
	showNextBrickGroup();
	updateGame(0);
	reLoadMap();
	showNextBrick();
				
}

//覆蓋run()方法
public void run(){
	try{
		Thread.sleep(GAME_SPEED);  	
		keyPress(KeyEvent.VK_DOWN);
		DownThread=new Thread(this);
		DownThread.start();
	}catch(Exception e){
		e.printStackTrace();
	}
}

//更新游戲數據
public void updateGame(int line){
	d.DrawMapFrame(290,350,200,140,5);
	GAME_SCORE+=50*line*line*line*(0.5)*GAME_LEVEL;
	GAME_LEVEL=GAME_SCORE/5000+1;
	GAME_SPEED=800/GAME_LEVEL+200;
	GAME_LINE+=line;
	
	d.DrawFont("級數:"+GAME_LEVEL,300,400,16,Color.cyan,"標楷體");
	d.DrawFont("分數:"+GAME_SCORE,300,430,16,Color.red,"標楷體");		
	d.DrawFont("行數:"+GAME_LINE,300,460,16,Color.green,"標楷體");
}	
	
//產生下一組磚塊
public void createNextBrick(){
	//產生預備磚塊組編號
	NextBrickArray.add(new Integer((int)(Math.random()*BrickArray.size())));
	//產生預備磚塊組顏色
	NextBrickColorArray.add(new Color((int)(Math.random()*128+127),
									  (int)(Math.random()*128+127),
									  (int)(Math.random()*128+127)));		
}

//檢查磚塊組是否可以放置
public boolean isPut(int x,int y,int type,int mode){
	SuperBrick sb=(SuperBrick)BrickArray.get(type);
	for(int i=0;i<=4;i++){
		for(int j=0;j<=4;j++){
			if(sb.BRICK_ARRAY[mode][i][j]==1){
				if((i+x)<0 || (i+x)>(GRIDX-1) || 
				   (j+y)<0 || (j+y)>(GRIDY-1) ||
				   MAP_ARRAY[i+x][j+y]==1){
					return false;				
				}	
			}
		}			
	}
	return true;				
}

//磚塊組數組寫入地圖數組
public void addBrickToMap(){
	for(int i=0;i<=4;i++){
		for(int j=0;j<=4;j++){
			if((NOW_BRICK_X+i)>=0 && (NOW_BRICK_X+i)<GRIDX &&
			   (NOW_BRICK_Y+j)>=0 && (NOW_BRICK_Y+j)<GRIDY &&
			   NowBrick.BRICK_ARRAY[NOW_BRICK_DIRECT][i][j]==1){
				MAP_ARRAY[NOW_BRICK_X+i][NOW_BRICK_Y+j]=1;
	            MAP_COLOR_ARRAY[NOW_BRICK_X+i][NOW_BRICK_Y+j]=
                NOW_BRICK_COLOR;
			}				
		}				
	}	
}

//產生下一個磚塊組
public void addNextBrick(){
	NextBrickArray.remove(0);
	NextBrickColorArray.remove(0);
	NOW_BRICK=((Integer)NextBrickArray.get(0)).intValue();
	NOW_BRICK_COLOR=(Color)NextBrickColorArray.get(0);
	NOW_BRICK_DIRECT=0;
	NOW_BRICK_X=(GRIDX-5)/2;
	NOW_BRICK_Y=0;
	NowBrick=(SuperBrick)BrickArray.get(NOW_BRICK);
	createNextBrick();
}

//顯示下一個磚塊組
public void showNextBrick(){
	if(this.isPut(NOW_BRICK_X,
	   			  NOW_BRICK_Y,
				  NOW_BRICK,
	              NOW_BRICK_DIRECT)){
		d.DrawBrickGroup(NOW_BRICK_X,
		   			     NOW_BRICK_Y,
					     NOW_BRICK,
		                 NOW_BRICK_DIRECT,
		                 NOW_BRICK_COLOR);
	}else{
		DownThread.stop();			
	}
}

//檢查滿行
public void checkFull(){
	boolean blFull=true;//滿行旗標
	int delLine=0;//刪除行數計數
	
	for(int j=NOW_BRICK_Y;j<(NOW_BRICK_Y+5);j++){
		blFull=true;
		for(int i=0;i<GRIDX;i++){
			if(j>=0 && j<GRIDY){
				if(MAP_ARRAY[i][j]!=1)
					blFull=false;					
			}else{
				blFull=false;					
			}
		}
		if(blFull){
			removeFull(j);//移除滿行			
			delLine++;
		}
	}
	
	if(delLine>0)
		reLoadMap();
		
	updateGame(delLine);
	
}		

//移除滿行
public void removeFull(int line){
	for(int j=line;j>0;j--){
		for(int i=0;i<GRIDX;i++){				
			MAP_ARRAY[i][j]=MAP_ARRAY[i][j-1];
			MAP_COLOR_ARRAY[i][j]=MAP_COLOR_ARRAY[i][j-1];
		}								
	}
	
	for(int i=0;i<GRIDX;i++){
		MAP_ARRAY[i][0]=0;
		MAP_COLOR_ARRAY[i][0]=Color.black;
	}
}

//重新加載地圖磚塊
public void reLoadMap(){
	for(int i=0;i<GRIDX;i++){
		for(int j=0;j<GRIDY;j++){
			if(MAP_ARRAY[i][j]==1)
				d.DrawBrick(i,j,MAP_COLOR_ARRAY[i][j]);
			else
				d.DrawBrick(i,j,Color.black);
		}				
	}	
}

//顯示下一組磚塊
public void showNextBrickGroup(){
		new MoveThread(this).start();
}

//按鍵事件
public synchronized void keyPress(int KEYCODE){
	int x=NOW_BRICK_X;
	int y=NOW_BRICK_Y;
	int direct=NOW_BRICK_DIRECT;		
	switch(KEYCODE){
	case KeyEvent.VK_UP://上
		NOW_BRICK_DIRECT++;
		if(NOW_BRICK_DIRECT>=4)
			NOW_BRICK_DIRECT=0;
			
		if(isPut(NOW_BRICK_X,
				 NOW_BRICK_Y,
				 NOW_BRICK,
				 NOW_BRICK_DIRECT)){                   					                     
			d.DrawBrickGroup(x,y,direct);
		}else{
			NOW_BRICK_DIRECT--;
			if(NOW_BRICK_DIRECT<0)
				NOW_BRICK_DIRECT=3;
		}
		break;				
	case KeyEvent.VK_DOWN://下
		if(isPut(NOW_BRICK_X,
				 NOW_BRICK_Y+1,
				 NOW_BRICK,
				 NOW_BRICK_DIRECT)){
			NOW_BRICK_Y++;
			d.DrawBrickGroup(x,y,direct);
	
		}else{//到底
			showNextBrickGroup();
			addBrickToMap();
			checkFull();
			
			addNextBrick();
			
			showNextBrick();
		}
		break;
		
	case KeyEvent.VK_LEFT://左
		if(isPut(NOW_BRICK_X-1,
				 NOW_BRICK_Y,
				 NOW_BRICK,
				 NOW_BRICK_DIRECT)){
			NOW_BRICK_X--;
			d.DrawBrickGroup(x,y,direct);
		}		
		break;
					
	case KeyEvent.VK_RIGHT://右
		if(isPut(NOW_BRICK_X+1,
				 NOW_BRICK_Y,
				 NOW_BRICK,
				 NOW_BRICK_DIRECT)){
			NOW_BRICK_X++;
			d.DrawBrickGroup(x,y,direct);
		}
		break;
							
	case KeyEvent.VK_SPACE://直落
		while(isPut(NOW_BRICK_X,
			        NOW_BRICK_Y+1,
				    NOW_BRICK,
					NOW_BRICK_DIRECT)){
			NOW_BRICK_Y++;
			d.DrawBrickGroup(x,y,direct);
			x=NOW_BRICK_X;
			y=NOW_BRICK_Y;
		}
		
		addBrickToMap();
		checkFull();
		addNextBrick();
		showNextBrickGroup();
		showNextBrick();					
		break;				
		
	case KeyEvent.VK_ESCAPE://跳離
		System.exit(0);
		break;	
									
	case KeyEvent.VK_PAUSE://暫停
		if(DownThread.isAlive())
			DownThread.stop();
		else{
			DownThread=new Thread(this);//產生控制下降的線程
			DownThread.start();
		}	
		break;	
	}				
}
}



/*程序:SingleTetirs.java
 *說明:相關繪圖方法。
 *      建立時需以SingleTetirs對象為創建子參數,
 *      負責方塊繪制,方塊區外框繪制,字型繪制等
 */
class Draw{

SingleTetirs st;//俄羅斯磚塊組單一類

//創建子
public Draw(SingleTetirs st){
	this.st=st;//指定繪圖區
}	
   
//畫出磚塊組動作區地圖外框	
public void DrawMapFrame(int x,int y,int wid,int hig,int side){
	
	//定義多邊形坐標
	int xx[][]={{x,x+wid,x+wid-side,x+side},//上
		     {x+wid-side,x+wid,x+wid,x+wid-side},//右
			 {x+side,x+wid-side,x+wid,x},//下
			 {x,x+side,x+side,x}};//左
	int yy[][]={{y,y,y+side,y+side},//上
		     {y+side,y,y+hig,y+hig-side},//右
			 {y+hig-side,y+hig-side,y+hig,y+hig},//下
			 {y,y+side,y+hig-side,y+hig}};//左		

			
	//畫出多邊形
	for(int i=0;i<=3;i++){
		
		//不同邊設定不同顏色
		switch(i){
			case 0:
				st.g.setColor(new Color(150,150,150));
				break;
			case 1:
				st.g.setColor(new Color(150,150,150));
				break;
			case 2:
				st.g.setColor(new Color(180,180,180));
				break;
			case 3:
				st.g.setColor(new Color(180,180,180));
				break;
		}
		
		st.g.fillPolygon(xx[i],yy[i],4);				
		st.g.setColor(Color.black);
		st.g.fillRect(x+side-1,y+side-1,wid-side*2+2,hig-side*2+2);
	}
}

//畫出磚塊組
public void DrawBrickGroup(int x,int y,int type,int direct,Color c){
	SuperBrick sb=(SuperBrick)st.BrickArray.get(type);
	for(int i=0;i<5;i++){
		for(int j=0;j<5;j++){
			if(sb.BRICK_ARRAY[direct][i][j]==1){
				DrawBrick((i+x),(j+y),c);
			}
		}	
	}
}

//畫出磚塊組(清除前一個磚塊組)
public void DrawBrickGroup(int fx,int fy,int fdirect){
	//清除前一個磚塊組
	for(int i=0;i<5;i++){
		for(int j=0;j<5;j++){
			if((i+st.NOW_BRICK_X)>=0 && (i+st.NOW_BRICK_X)<st.GRIDX && 
			   (j+st.NOW_BRICK_Y)>=0 && (j+st.NOW_BRICK_Y)<st.GRIDY){
				if(st.NowBrick.BRICK_ARRAY[fdirect][i][j]==1){
					DrawBrick(i+fx,j+fy,Color.black);
				}
			}
		}	
	}

	//畫出現在磚塊組
	for(int i=0;i<5;i++){
		for(int j=0;j<5;j++){
			if((i+st.NOW_BRICK_X)>=0 && (i+st.NOW_BRICK_X)<st.GRIDX && 
			   (j+st.NOW_BRICK_Y)>=0 && (j+st.NOW_BRICK_Y)<st.GRIDY){
			if(st.NowBrick.BRICK_ARRAY[st.NOW_BRICK_DIRECT][i][j]==1){
					DrawBrick(i+st.NOW_BRICK_X,
						      j+st.NOW_BRICK_Y,
						      st.NOW_BRICK_COLOR);
				}
			}
		}	
	}
}	

//畫出單一磚塊
public void DrawBrick(int x,int y,Color c){
	st.g.setColor(Color.black);
	st.g.drawRect(x*st.BRICK_WIDTH+st.MAPX,y*st.BRICK_WIDTH+st.MAPY,
			      st.BRICK_WIDTH-1,st.BRICK_WIDTH-1);
	st.g.setColor(c);
	st.g.fill3DRect(x*st.BRICK_WIDTH+st.MAPX+st.BRICK_SIDE,
					y*st.BRICK_WIDTH+st.MAPY+st.BRICK_SIDE,
			        st.BRICK_WIDTH-st.BRICK_SIDE*2,
			        st.BRICK_WIDTH-st.BRICK_SIDE*2,true);				      
}

//畫出字型
public void DrawFont(String str,int x,int y,int size,Color c,String fs){
	Font f=new Font(fs,Font.BOLD,size);
	st.g.setColor(c);
	st.g.setFont(f);
	st.g.drawString(str,x,y);	
}
}

//====================================

class MoveThread extends Thread{
SingleTetirs s;
Graphics g;
Draw d;
Component c;
Image img;
Graphics sg;

public MoveThread(SingleTetirs s){
	this.s=s;
	this.g=s.g;
	this.d=s.d;
	this.c=s.c;
	
	img=c.createImage(190,340);
	sg=img.getGraphics();			
}	

public void run(){	
	for(int i=0;i<4;i++){
		try{
			sleep(50);
			showNextBrickGroup(i);
			g.drawImage(img,295,5,c);				
		}catch(Exception e){
			e.printStackTrace();	
		}
	}
}

//顯示下一組磚塊
public void showNextBrickGroup(int index){

	sg.setColor(Color.black);
	sg.fillRect(0,0,190,340);	

	for(int j=0;j<s.NextBrickArray.size();j++){
		int m=((Integer)s.NextBrickArray.get(j)).intValue();
		Color c=((Color)s.NextBrickColorArray.get(j));
		DrawBrickGroup((2),((j)*4)-index,m,0,c);
	}
}	

//畫出磚塊組
public void DrawBrickGroup(int x,int y,int type,int direct,Color c){
	SuperBrick sb=(SuperBrick)s.BrickArray.get(type);
	for(int i=0;i<5;i++){
		for(int j=0;j<5;j++){
			if(sb.BRICK_ARRAY[direct][i][j]==1){
				DrawBrick((i+x),(j+y),c);
			}
		}	
	}
}
	
//畫出單一磚塊
public void DrawBrick(int x,int y,Color c){
	sg.setColor(Color.black);
	sg.drawRect(x*s.BRICK_WIDTH-9,y*s.BRICK_WIDTH,
			      s.BRICK_WIDTH-1,s.BRICK_WIDTH-1);
	sg.setColor(c);
	sg.fill3DRect(x*s.BRICK_WIDTH-9,
					y*s.BRICK_WIDTH,
			        s.BRICK_WIDTH-s.BRICK_SIDE*2,
			        s.BRICK_WIDTH-s.BRICK_SIDE*2,true);				      
}	
}





?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区0| 怡红院av一区二区三区| 久久精品国产精品亚洲精品| 3d成人h动漫网站入口| 五月天丁香久久| 欧美精品粉嫩高潮一区二区| 视频一区中文字幕国产| 欧美不卡123| 国产在线视频精品一区| 综合激情成人伊人| 欧美日韩日本视频| 精品一区二区三区在线播放| 欧美韩国日本不卡| 色av成人天堂桃色av| 秋霞午夜鲁丝一区二区老狼| 国产婷婷色一区二区三区 | 国产成人一区在线| 亚洲私人影院在线观看| 欧美日韩成人综合在线一区二区| 美女视频一区在线观看| 国产精品国产三级国产aⅴ入口| 色香蕉成人二区免费| 美女网站色91| 日韩毛片在线免费观看| 日韩一区二区三免费高清| 成人网男人的天堂| 丝袜诱惑亚洲看片| 亚洲国产成人午夜在线一区| 欧美日韩一区二区不卡| 国产精品99久久久久久似苏梦涵 | 91蜜桃免费观看视频| 午夜精品免费在线观看| 国产欧美久久久精品影院| 99re8在线精品视频免费播放| 视频在线观看国产精品| 国产精品女同一区二区三区| 欧美高清激情brazzers| eeuss国产一区二区三区| 麻豆精品在线播放| 亚洲日本护士毛茸茸| 精品国产91亚洲一区二区三区婷婷| 91蜜桃视频在线| 国产精品一区免费在线观看| 日韩黄色片在线观看| 1区2区3区国产精品| 精品sm在线观看| 欧美日本一区二区| 色美美综合视频| 成人a免费在线看| 国产一区二区在线观看免费| 午夜精品久久一牛影视| 亚洲男女毛片无遮挡| 国产欧美一区二区在线| 日韩欧美一区二区视频| 欧美探花视频资源| 色综合视频在线观看| 国产成人免费视频网站高清观看视频 | 91猫先生在线| 国产精品538一区二区在线| 日本不卡中文字幕| 香蕉成人啪国产精品视频综合网| 亚洲欧洲精品一区二区三区| 欧美激情在线一区二区| 久久网这里都是精品| 精品国产一二三| 日韩午夜激情视频| 日韩一级完整毛片| 欧美三级三级三级| 欧美日韩国产不卡| 欧美精品 日韩| 91麻豆精品国产91久久久 | 视频一区二区不卡| 亚洲亚洲人成综合网络| 亚洲最大的成人av| 亚洲国产精品尤物yw在线观看| 亚洲男人都懂的| 亚洲一区在线观看网站| 一区二区三区四区不卡在线| 一区二区在线免费| 五月天精品一区二区三区| 视频在线观看一区二区三区| 日韩不卡在线观看日韩不卡视频| 欧美aaaaa成人免费观看视频| 日本不卡在线视频| 国产乱色国产精品免费视频| 国产乱码精品一区二区三| 高清在线成人网| 99久久精品99国产精品| 色欧美片视频在线观看| 欧美日韩中文字幕一区| 日韩欧美一级二级| 国产欧美日本一区视频| 亚洲欧美成人一区二区三区| 亚洲一区av在线| 男男gaygay亚洲| 国产成人午夜视频| 91最新地址在线播放| 欧美日韩精品二区第二页| 欧美一区二区三区视频| 国产视频911| 亚洲激情综合网| 久久福利资源站| 成+人+亚洲+综合天堂| 色菇凉天天综合网| 欧美一区二区成人| 国产精品美女久久久久久 | 欧美国产欧美综合| 一区二区三区在线观看视频 | 麻豆91在线播放免费| 国产精品一级二级三级| 色婷婷av一区二区三区gif| 88在线观看91蜜桃国自产| 精品成人a区在线观看| 成人免费在线观看入口| 三级影片在线观看欧美日韩一区二区 | 国产一区免费电影| 色综合久久久久综合体| 日韩视频免费观看高清完整版 | 精品日韩av一区二区| 亚洲欧洲成人精品av97| 青娱乐精品在线视频| www.激情成人| 日韩欧美国产不卡| 一区二区三区国产豹纹内裤在线| 久久精品国产久精国产| 欧洲一区在线观看| 久久精品亚洲国产奇米99| 亚洲国产精品自拍| 成人性生交大片免费| 欧美一卡二卡三卡| 亚洲男帅同性gay1069| 国产激情91久久精品导航| 欧美日韩国产免费| 亚洲欧洲精品一区二区三区不卡| 久久精品国产秦先生| 欧美日韩视频一区二区| 日韩一区有码在线| 国产一区亚洲一区| 91精品国产福利| 亚洲自拍偷拍图区| av高清不卡在线| 国产婷婷精品av在线| 久久精品国产精品亚洲综合| 欧美日韩亚洲丝袜制服| 亚洲美女一区二区三区| 成人午夜看片网址| 国产欧美综合在线观看第十页| 免费观看在线综合色| 欧美日韩国产小视频| 亚洲综合一二三区| 色综合久久66| 亚洲欧美怡红院| fc2成人免费人成在线观看播放| 久久久久久**毛片大全| 狠狠色综合日日| 欧美va亚洲va国产综合| 麻豆精品久久精品色综合| 欧美精品久久一区| 午夜国产不卡在线观看视频| 欧美在线三级电影| 亚洲午夜视频在线观看| 欧美中文字幕一二三区视频| 艳妇臀荡乳欲伦亚洲一区| 91成人在线精品| 亚洲一区二区综合| 欧美无砖专区一中文字| 亚洲一二三区在线观看| 欧美撒尿777hd撒尿| 亚洲主播在线观看| 欧美视频在线播放| 婷婷开心激情综合| 日韩午夜三级在线| 国产一区二区三区国产| 久久九九久久九九| 成人网页在线观看| 亚洲日本在线天堂| 欧洲一区二区三区在线| 日韩精品欧美精品| 欧美videos中文字幕| 国产成人免费网站| 亚洲精品乱码久久久久久黑人| 色婷婷综合中文久久一本| 亚洲图片欧美视频| 欧美一区二区成人| 岛国精品在线播放| 亚洲精品老司机| 91精品婷婷国产综合久久性色| 免费在线成人网| 日本一区二区免费在线| 99国产精品久久久久久久久久 | 99久久精品免费精品国产| 亚洲欧美激情小说另类| 欧美日韩精品三区| 国产在线观看免费一区| 中文字幕亚洲欧美在线不卡| 欧美人狂配大交3d怪物一区| 另类小说欧美激情| 亚洲欧洲日韩一区二区三区| 欧美日韩国产中文| 国产麻豆视频精品|