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

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

?? main.cpp

?? 貪吃蛇源代碼
?? CPP
字號:
#include<windows.h>
#include <time.h>

#include"snaker.h"
#include"table.h"

//游戲狀態定義
#define GAME_STATE_WAIT     0  //游戲等待狀態
#define GAME_STATE_RUN      1  //游戲運行狀態
#define GAME_STATE_END      2  //游戲結束狀態

//界面相關物件尺寸定義
#define WALL_WIDTH             80  //外墻從左部到游戲區的寬度
#define WALL_HEIGHT            80  //外墻從頂部到游戲區的高度

#define BMP_SCORE_BOARD_WIDTH  256 //分數位圖板的寬度
#define BMP_SCORE_BOARD_HEIGHT 55  //分數位圖板的高度

#define BMP_WALL_WIDTH         16  //墻位圖的寬度
#define BMP_WALL_HEIGHT        16  //墻位圖的高度

LRESULT CALLBACK WndProc(HWND hWnd,UINT message,
						 WPARAM wParam,LPARAM lParam);
void DrawGame(void);
void ShellDraw( HDC  hdc );
void GameAreaDraw(HDC hdc);

void OnTimer(UINT uTIMER_ID);
void StartGame( void );
void EndGame( void );

//創建一個桌子
CTable table;

int tableBlockWidth = 0;  //桌子的格子的寬度
int tableBlockHeight = 0; //桌子的格子的高度
int iScores = 0;          //游戲的得分

UINT uGameState = GAME_STATE_WAIT; //當前游戲狀態

HDC windowDC = NULL;      //windows屏幕設備
HDC bufferDC = NULL;      //緩沖設備環境
HDC picDC = NULL;         //snake圖像內存設備
HDC endDC = NULL;		 //游戲終結圖像內存設備
HDC scoreDC = NULL;      //分數板內存設備

HWND hAppWnd = NULL;     //本application窗口句柄


HBITMAP picBMP = NULL;      //snake圖像位圖句柄
HBITMAP bufferBMP = NULL;   //緩沖位圖句柄
HBITMAP endBMP = NULL;      //游戲終結圖像內存句柄
HBITMAP hbmpWall = NULL;    //墻位圖句柄
HBITMAP hbmpScore = NULL;   //分數板位圖句柄

HBRUSH hbrushWall = NULL;      //墻畫刷

//定時器標識
UINT uSnakeMoveTimer;  //蛇的移動
UINT uFoodAddTimer;    //水果的產生

//框架的位置數據定義
//GDI RECT 而不是 MFC CRect
RECT g_ClientRect;
RECT g_GameValueRect;
int g_iClientWidth;
int g_iClientHeight;

int WINAPI WinMain(HINSTANCE hCurrentInst,HINSTANCE hPrevInstance,
				   PSTR lpszCmdLine,int nCmdShow)
{	
	WNDCLASS wndClass;
	HWND hWnd;
	MSG msg;
	UINT width,height;
	
	
	//定義窗口
	wndClass.style=CS_HREDRAW | CS_VREDRAW;
	wndClass.lpfnWndProc=WndProc;
	wndClass.cbClsExtra=0;
	wndClass.cbWndExtra=0;
	wndClass.hInstance=hCurrentInst;
	wndClass.hIcon=LoadIcon(NULL,MAKEINTRESOURCE(IDI_MAIN));
	wndClass.hCursor=LoadCursor(NULL,IDC_ARROW);
	wndClass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
	wndClass.lpszMenuName=NULL;
	wndClass.lpszClassName="Snake_CLASS";
	//注冊窗口
	RegisterClass(&wndClass);
	
	
	//取整個屏幕的尺寸	
	width=GetSystemMetrics(SM_CXSCREEN);
	height=	GetSystemMetrics(SM_CYSCREEN);
	//創建窗口
	hWnd=CreateWindow(
		"Snake_CLASS",
		"skyblue snake",
		WS_POPUP,
		0,0,
		width,height,
		NULL,NULL,
		hCurrentInst,
		NULL);

	hAppWnd = hWnd;

	//顯示窗口
	ShowWindow(hWnd,nCmdShow);
	UpdateWindow(hWnd);
	
    //獲取窗體大小
	GetClientRect(hAppWnd, &g_ClientRect);
	g_iClientWidth = g_ClientRect.right-g_ClientRect.left;
	g_iClientHeight = g_ClientRect.bottom-g_ClientRect.top;

	//將游戲區域分成縱,橫均為20塊的小方塊
	//并計算每塊區域的大小
	tableBlockWidth = (g_iClientWidth-2*WALL_WIDTH)/20;
	tableBlockHeight = (g_iClientHeight-2*WALL_HEIGHT)/20;
	
	//獲取當前主窗口設備與windowDC關聯
	windowDC=GetDC(NULL);
	//創建與windowDC兼容的內存設備環境
	bufferDC=CreateCompatibleDC(windowDC);
	picDC=CreateCompatibleDC(windowDC);
	endDC=CreateCompatibleDC(windowDC);	
	scoreDC=CreateCompatibleDC(windowDC);	

	//位圖的初始化或載入位圖	
	bufferBMP=CreateCompatibleBitmap(windowDC,g_iClientWidth,g_iClientHeight);
	picBMP=(HBITMAP)LoadImage(NULL,"snake.bmp",IMAGE_BITMAP,160,80,LR_LOADFROMFILE);
	hbmpWall=(HBITMAP)LoadImage(NULL,"brick.bmp",IMAGE_BITMAP,16,16,LR_LOADFROMFILE);
	endBMP = (HBITMAP)LoadImage(NULL,"end.bmp",IMAGE_BITMAP,369,300,LR_LOADFROMFILE);
	hbmpScore=(HBITMAP)LoadImage(NULL,"scoreboard.bmp",IMAGE_BITMAP,265,55,LR_LOADFROMFILE);
	
	//聲明位圖與設備環境的關聯
	SelectObject(bufferDC,bufferBMP);
	SelectObject(picDC,picBMP);
	SelectObject(endDC,endBMP);
	SelectObject(scoreDC,hbmpScore);

	//建立畫刷與其名相對應的圖像的關聯,
	//以備用刷子將墻刷出來,用PatBlt()實現
	hbrushWall = CreatePatternBrush(hbmpWall);
	
	StartGame();
	
	
	while(GetMessage(&msg,NULL,0,0))
	{		
		TranslateMessage(&msg);
		DispatchMessage(&msg);
	}
	return msg.wParam;
}

LRESULT CALLBACK WndProc(HWND hWnd,UINT message,
						 WPARAM wParam,LPARAM lParam)
{
	
	switch(message)
	{
	case WM_TIMER :
		OnTimer((UINT)wParam);		
		break;		

	case WM_KEYDOWN:
		switch(wParam)
		{
		case VK_ESCAPE:
			exit(0);
			break;
		case VK_UP:
			table.ChangeSnakeDirect(S_UP);
			break;
		case VK_DOWN:
			table.ChangeSnakeDirect(S_DOWN);
			break;
		case VK_LEFT:
			table.ChangeSnakeDirect(S_LEFT);
			break;
		case VK_RIGHT:
			table.ChangeSnakeDirect(S_RIGHT);
			break;
		case VK_SPACE:
			if(	uGameState == GAME_STATE_END )
		{
			StartGame();
			break;
		}

		}
		return 0;
		case WM_SETCURSOR:
			SetCursor(NULL);
			return 0;
		case WM_DESTROY:
			ReleaseDC(hWnd,picDC);
			ReleaseDC(hWnd,bufferDC);
			ReleaseDC(hWnd,windowDC);
			PostQuitMessage(0);
			return 0;			
	}
	return DefWindowProc(hWnd,message,wParam,lParam);
}

void DrawGame(void)
{
	//繪制外殼區域到緩沖
	ShellDraw(bufferDC);

	//繪制游戲區域到緩沖
	GameAreaDraw(bufferDC);

	//將整個畫面從緩沖DC拷貝出屏幕
	BitBlt(windowDC,0,0,g_iClientWidth,g_iClientHeight,bufferDC,0,0,SRCCOPY);
}



void OnTimer(UINT uTIMER_ID)
{
	if ( uTIMER_ID == uSnakeMoveTimer )
	{
		//移動蛇
		table.SnakeMove();
		
		//檢測是否碰到身體(環繞),結束游戲
		if(table.GetSnake()->IsHeadTouchBody(table.GetSnake()->GetPos()[0].x,table.GetSnake()->GetPos()[0].y))
		{
			EndGame();
		}
		
		//根據蛇頭所在的區域作出相應的處理
		switch(table.GetData(table.GetSnake()->GetPos()[0].x,table.GetSnake()->GetPos()[0].y))
		{
		case TB_STATE_FOOD:
			table.ClearFood(table.GetSnake()->GetPos()[0].x,table.GetSnake()->GetPos()[0].y);
			table.AddBlock((rand())%tableBlockWidth,(rand())%tableBlockHeight);
			table.GetSnake()->AddBody();
			++iScores;
			break;
		case TB_STATE_BLOCK:
		case TB_STATE_SBLOCK:
			//檢測是否碰到障礙物,結束游戲
			EndGame();
			break;
		}
		
		//顯示
		DrawGame();
	}
	else if ( uTIMER_ID == uFoodAddTimer )
	{//定時加食物
		table.AddFood((rand())%tableBlockWidth,(rand())%tableBlockHeight);
	}
}

void StartGame()
{
	iScores=0;

	//桌面的初始化
	table.InitialTable(tableBlockWidth,tableBlockHeight);
	table.GetSnake()->ChangeDirect(S_RIGHT);
	table.GetSnake()->SetHeadPos(tableBlockWidth/2,tableBlockHeight/2);

	//預先隨機產生幾個食物
	srand( (unsigned)time(NULL) );
	for(int iFoodNum=0;  iFoodNum<4; iFoodNum++)
	{
		table.AddFood((rand())%tableBlockWidth,(rand())%tableBlockHeight);
	}
	//不部下種子也可以直接用rand(),
	//但是每次游戲開始都是產生完全一樣的偽隨即序列

	//打開定時器
	uSnakeMoveTimer = SetTimer(hAppWnd,500,100,NULL);
	uFoodAddTimer = SetTimer(hAppWnd,600,7000,NULL);

		uGameState = GAME_STATE_RUN;
}

void EndGame( void )
{
	//關閉定時器
	KillTimer(hAppWnd,uSnakeMoveTimer);
	KillTimer(hAppWnd,uFoodAddTimer);
	uGameState = GAME_STATE_END;
}

void ShellDraw( HDC  hdc )
{	
//	HDC hMemDc;
//	BOOL ret = TRUE;
//	HDC hMemoryDC;
//	HBITMAP hbmp;
	//分數提示顯示文字
	char szText[30] = "Score: ";
	char szNum[20];

	int iNowScore = iScores*100;
	itoa(iNowScore,szNum,10);
	strcat(szText, szNum);
	
	RECT rt, rect;
	GetClientRect(hAppWnd, &rt);
	//墻的繪制
	SelectObject(hdc,hbrushWall);
	PatBlt(hdc,rt.left,rt.top,rt.right,rt.bottom,PATCOPY);
	//內部游戲區的白色底平面
	rect.left = rt.left+WALL_WIDTH;
	rect.top = rt.top + WALL_HEIGHT;
	rect.right = rt.right - WALL_WIDTH;
	rect.bottom = rt.bottom - WALL_HEIGHT;		
	FillRect(hdc, &rect, (HBRUSH) (COLOR_WINDOW+1));
	
	//分數提示板的繪制		
/*	hMemoryDC =	CreateCompatibleDC(NULL);	
	hbmp = CreateCompatibleBitmap(hdc,265,55);		
	SelectObject(hMemoryDC,hbrushScore);	
	SelectObject(hMemoryDC,hbmp);	
	PatBlt(hMemoryDC,0,0,256,55,PATCOPY);	
	BitBlt(hdc,GetSystemMetrics(SM_CXSCREEN)/3,
		   10,256,55,hMemoryDC,0,0,SRCCOPY);
*/
	BitBlt(hdc,GetSystemMetrics(SM_CXSCREEN)/3,
		   10,256,55,scoreDC,0,0,SRCCOPY);
	
//分數的打印繪制
	SetBkMode(hdc, TRANSPARENT); 	
	TextOut(hdc, GetSystemMetrics(SM_CXSCREEN)/3+50, 30,szText,strlen(szText) );
}

void GameAreaDraw(HDC hdc)
{
	int i,j;
	int x,y, x_pos,y_pos;
	BitmapState  state;
	char strMark[20];

	//繪制水果與 毒果
	for(i=0;i<tableBlockHeight;i++)
		for(j=0;j<tableBlockWidth;j++)
		{	
			x_pos = j*20+WALL_WIDTH;
			y_pos = i*20+WALL_HEIGHT;

			switch(table.GetData(j,i))
			{
			case TB_STATE_FOOD:
				BitBlt(hdc,x_pos,y_pos,20,20,picDC,100,0,SRCPAINT);
				BitBlt(hdc,x_pos,y_pos,20,20,picDC,20,0,SRCAND);
				break;
			case TB_STATE_BLOCK:
				BitBlt(hdc,x_pos,y_pos,20,20,picDC,80,0,SRCPAINT);
				BitBlt(hdc,x_pos,y_pos,20,20,picDC,0,0,SRCAND);
				break;
			}
		}

		//根據當前的狀態繪制蛇頭		
		x=table.GetSnake()->GetPos()[0].x;
		y=table.GetSnake()->GetPos()[0].y;
		x_pos = x*20+WALL_WIDTH;
		y_pos = y*20+WALL_HEIGHT;		
		state=table.GetSnake()->GetStateArray()[0];

		switch(state)
		{
		case M_UP_UP:
			BitBlt(hdc,x_pos,y_pos,20,20,picDC,80,20,SRCPAINT);
			BitBlt(hdc,x_pos,y_pos,20,20,picDC,0,20,SRCAND);
			break;
		case M_DOWN_DOWN:
			BitBlt(hdc,x_pos,y_pos,20,20,picDC,140,20,SRCPAINT);
			BitBlt(hdc,x_pos,y_pos,20,20,picDC,60,20,SRCAND);
			break;
		case M_LEFT_LEFT:
			BitBlt(hdc,x_pos,y_pos,20,20,picDC,100,20,SRCPAINT);
			BitBlt(hdc,x_pos,y_pos,20,20,picDC,20,20,SRCAND);
			break;
		case M_RIGHT_RIGHT:
			BitBlt(hdc,x_pos,y_pos,20,20,picDC,120,20,SRCPAINT);
			BitBlt(hdc,x_pos,y_pos,20,20,picDC,40,20,SRCAND);
			break;
		}

		//根據各個蛇身節點的狀態繪制蛇身的形狀
		for(i=1;i<table.GetSnake()->GetLength()-1;i++)
		{
			x=table.GetSnake()->GetPos()[i].x;
			y=table.GetSnake()->GetPos()[i].y;
			x_pos = x*20+WALL_WIDTH;
			y_pos = y*20+WALL_HEIGHT;	
			state=table.GetSnake()->GetStateArray()[i];
			switch(state)
			{
			case M_UP_UP:
			case M_DOWN_DOWN:
				BitBlt(hdc,x_pos,y_pos,20,20,picDC,80,40,SRCPAINT);
				BitBlt(hdc,x_pos,y_pos,20,20,picDC,0,40,SRCAND);
				break;
			case M_LEFT_LEFT:
			case M_RIGHT_RIGHT:
				BitBlt(hdc,x_pos,y_pos,20,20,picDC,100,40,SRCPAINT);
				BitBlt(hdc,x_pos,y_pos,20,20,picDC,20,40,SRCAND);
				break;
			case M_RIGHT_DOWN:
			case M_UP_LEFT:
				BitBlt(hdc,x_pos,y_pos,20,20,picDC,100,60,SRCPAINT);
				BitBlt(hdc,x_pos,y_pos,20,20,picDC,20,60,SRCAND);
				break;
			case M_LEFT_DOWN:
			case M_UP_RIGHT:
				BitBlt(hdc,x_pos,y_pos,20,20,picDC,80,60,SRCPAINT);
				BitBlt(hdc,x_pos,y_pos,20,20,picDC,0,60,SRCAND);
				break;
			case M_RIGHT_UP:
			case M_DOWN_LEFT:
				BitBlt(hdc,x_pos,y_pos,20,20,picDC,140,40,SRCPAINT);
				BitBlt(hdc,x_pos,y_pos,20,20,picDC,60,40,SRCAND);
				break;
			case M_LEFT_UP:
			case M_DOWN_RIGHT:
				BitBlt(hdc,x_pos,y_pos,20,20,picDC,120,40,SRCPAINT);
				BitBlt(hdc,x_pos,y_pos,20,20,picDC,40,40,SRCAND);
				break;
				
			}
		}

		//繪制蛇尾巴
		x=table.GetSnake()->GetPos()[table.GetSnake()->GetLength()-1].x;
		y=table.GetSnake()->GetPos()[table.GetSnake()->GetLength()-1].y;
		x_pos = x*20+WALL_WIDTH;
		y_pos = y*20+WALL_HEIGHT;	
		state=table.GetSnake()->GetStateArray()[table.GetSnake()->GetLength()-1];		
		switch(state)
		{
		case M_UP_UP:
			BitBlt(hdc,x_pos,y_pos,20,20,picDC,120,60,SRCPAINT);
			BitBlt(hdc,x_pos,y_pos,20,20,picDC,40,60,SRCAND);
			break;
		case M_DOWN_DOWN:
			BitBlt(hdc,x_pos,y_pos,20,20,picDC,120,0,SRCPAINT);
			BitBlt(hdc,x_pos,y_pos,20,20,picDC,40,0,SRCAND);
			break;
		case M_LEFT_LEFT:
			BitBlt(hdc,x_pos,y_pos,20,20,picDC,140,60,SRCPAINT);
			BitBlt(hdc,x_pos,y_pos,20,20,picDC,60,60,SRCAND);
			break;
		case M_RIGHT_RIGHT:
			BitBlt(hdc,x_pos,y_pos,20,20,picDC,140,0,SRCPAINT);
			BitBlt(hdc,x_pos,y_pos,20,20,picDC,60,0,SRCAND);
			break;
		}
		
		if(uGameState == GAME_STATE_END)
		{//繪制游戲結束圖像
			int x_pos = g_iClientWidth/3;
			int y_pos = g_iClientHeight/4;

			BitBlt(hdc, x_pos, y_pos, 369, 300, endDC, 0, 0, SRCCOPY);			
		}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
蜜臀久久久99精品久久久久久| 欧美在线免费视屏| 91视频xxxx| 欧美va亚洲va| 一区二区三区欧美| 国产成人av一区二区三区在线观看| 在线亚洲欧美专区二区| 国产欧美一区视频| 日日夜夜一区二区| 色美美综合视频| 中文字幕一区免费在线观看| 久久精品国产99久久6| 在线观看亚洲精品| 中文字幕在线视频一区| 国产mv日韩mv欧美| 精品对白一区国产伦| 日本成人在线看| 欧美男同性恋视频网站| 亚洲午夜在线电影| 在线免费不卡电影| 一区二区三区在线影院| 99精品久久99久久久久| 国产精品盗摄一区二区三区| 成人av在线影院| 国产亚洲精品aa午夜观看| 美女视频一区在线观看| 欧美一区二区福利视频| 日韩成人一区二区三区在线观看| 欧美中文字幕一区二区三区| 亚洲伦理在线免费看| 色哟哟在线观看一区二区三区| 亚洲欧洲精品成人久久奇米网| 成人免费视频国产在线观看| 国产精品久久99| 91在线一区二区三区| 亚洲欧洲av在线| 91免费观看国产| 一区二区三区免费| 欧美中文字幕一区二区三区亚洲| 亚洲超碰97人人做人人爱| 欧美日韩aaaaa| 麻豆成人久久精品二区三区红| 欧美电影免费观看高清完整版在线 | 一区二区三区中文在线观看| 91免费版pro下载短视频| 亚洲激情在线播放| 欧美日韩免费观看一区三区| 六月丁香婷婷久久| 国产精品美女久久久久久久久| av资源站一区| 午夜电影网亚洲视频| 日韩三级在线观看| 成人性生交大合| 一区二区三区在线免费| 678五月天丁香亚洲综合网| 日本欧美一区二区在线观看| 久久久久国产精品麻豆ai换脸| 91蜜桃免费观看视频| 五月天中文字幕一区二区| 久久蜜桃av一区精品变态类天堂 | 一区二区在线免费观看| 欧美精品自拍偷拍| 国产精品自拍一区| 一区二区三区四区国产精品| 日韩精品影音先锋| av一区二区不卡| 日韩av一区二区在线影视| 国产视频一区二区在线| 欧美日韩中文字幕一区二区| 国产精品主播直播| 天堂久久一区二区三区| 国产精品伦一区| 91精品国产综合久久久久久| www.欧美日韩| 久久狠狠亚洲综合| 一区二区三区四区激情| 国产欧美一区二区三区网站| 欧美剧情片在线观看| 播五月开心婷婷综合| 麻豆高清免费国产一区| 亚洲精品成a人| 久久久久久久一区| 777亚洲妇女| 色综合久久天天| 大尺度一区二区| 麻豆久久久久久| 五月激情综合网| 亚洲男女一区二区三区| 国产午夜精品一区二区三区嫩草 | 狠狠色伊人亚洲综合成人| 亚洲日韩欧美一区二区在线| 久久久久国产一区二区三区四区| 欧美日韩激情一区二区三区| 91丝袜美腿高跟国产极品老师| 国产精品主播直播| 国产在线精品一区二区夜色| 午夜伦欧美伦电影理论片| 一级特黄大欧美久久久| 国产精品久久久久久久久快鸭 | 欧美一级在线免费| 欧洲激情一区二区| 一本久道中文字幕精品亚洲嫩| 成人免费高清在线| 国产99久久久精品| 韩国精品主播一区二区在线观看| 午夜精品久久久久| 日韩精品欧美精品| 日韩国产精品久久久久久亚洲| 一区二区三区蜜桃| 一个色妞综合视频在线观看| 一级精品视频在线观看宜春院| 一区二区三区四区中文字幕| 伊人色综合久久天天人手人婷| 一区二区三区自拍| 亚洲一区二区三区中文字幕在线| 亚洲精品高清在线| 午夜精品一区二区三区免费视频| 五月天亚洲婷婷| 久久国产尿小便嘘嘘| 国产精品亚洲а∨天堂免在线| 成人少妇影院yyyy| 色婷婷av一区二区三区大白胸| 欧美在线短视频| 欧美久久久一区| 日韩女优视频免费观看| 久久久久久久久99精品| 国产精品久久久久久久第一福利| 亚洲精品视频一区| 午夜精品一区二区三区三上悠亚| 蜜桃av一区二区| 成人小视频免费观看| 色哟哟国产精品| 欧美男男青年gay1069videost| 日韩三级精品电影久久久| 精品理论电影在线观看| 国产人成一区二区三区影院| 一区二区三区毛片| 激情都市一区二区| 99国产精品久| 日韩一区二区精品葵司在线| 国产日韩欧美制服另类| 一区二区三区免费| 激情综合网最新| 成人久久18免费网站麻豆 | 久久网这里都是精品| 国产欧美精品区一区二区三区| 亚洲免费在线视频| 久久成人18免费观看| 成人av网址在线观看| 91精品欧美久久久久久动漫 | 国产日产欧产精品推荐色| 亚洲图片另类小说| 日韩av中文在线观看| 成人动漫精品一区二区| 欧美日韩一区二区不卡| 国产蜜臀97一区二区三区| 亚洲一区二区三区四区五区黄 | 亚洲欧美日韩综合aⅴ视频| 久久狠狠亚洲综合| 91官网在线观看| 欧美高清在线视频| 偷拍与自拍一区| 色综合久久中文字幕| 国产午夜精品一区二区三区四区| 亚欧色一区w666天堂| 97se亚洲国产综合在线| 精品91自产拍在线观看一区| 亚洲h动漫在线| 99免费精品视频| 26uuu久久综合| 五月激情综合婷婷| 91美女蜜桃在线| 国产视频在线观看一区二区三区| 日韩av网站在线观看| 欧美在线一区二区三区| 综合欧美一区二区三区| 国产精品一区二区在线看| 6080日韩午夜伦伦午夜伦| 亚洲天堂免费在线观看视频| 国产成人鲁色资源国产91色综 | 欧美一区二区三区视频在线观看| 综合激情网...| 波多野结衣亚洲| 久久久精品国产99久久精品芒果| 免费在线观看不卡| 欧美日韩一区二区三区在线| 夜夜爽夜夜爽精品视频| 99精品国产热久久91蜜凸| 国产精品伦一区二区三级视频| 粉嫩aⅴ一区二区三区四区五区 | 国产a久久麻豆| 久久久99久久精品欧美| 国产在线视频不卡二| 久久久久久久久久久久久久久99| 韩国女主播一区二区三区| 亚洲精品在线三区| 国产精品综合二区| 日本一区二区三区免费乱视频| 国产成人免费在线观看| 中文字幕欧美国产|