亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
色综合天天狠狠| 日韩福利电影在线| 欧美日本不卡视频| 国产精品一区二区在线看| 一二三区精品视频| 欧美激情综合在线| 日韩色视频在线观看| 在线观看网站黄不卡| 国产激情偷乱视频一区二区三区| 亚洲宅男天堂在线观看无病毒| 久久久综合精品| 欧美日韩国产成人在线91| 99精品视频在线观看| 理论电影国产精品| 婷婷亚洲久悠悠色悠在线播放| 国产精品成人午夜| 日本一区二区免费在线| 国产成人亚洲综合a∨婷婷| 国产欧美日韩另类视频免费观看| 欧美探花视频资源| 一本大道av一区二区在线播放| www.av亚洲| 久久99精品国产麻豆婷婷| 天天av天天翘天天综合网色鬼国产 | 久久精品亚洲精品国产欧美| 欧美性受xxxx| 成人av先锋影音| 国产不卡视频在线播放| 狠狠色综合播放一区二区| 午夜精品aaa| 亚洲一区二区三区在线| 蜜臀av一区二区三区| 国产精品77777| 欧美在线免费观看视频| 欧美一区二区日韩| 久久亚洲精精品中文字幕早川悠里 | 一本色道久久综合亚洲91| 欧美自拍丝袜亚洲| 制服丝袜av成人在线看| 国产日韩欧美一区二区三区乱码| 亚洲手机成人高清视频| 天堂va蜜桃一区二区三区 | 欧美色综合影院| 欧美变态tickle挠乳网站| 亚洲欧洲美洲综合色网| 日韩电影免费在线看| av亚洲精华国产精华精华| 欧美区一区二区三区| 国产精品美女久久久久高潮| 亚洲国产精品一区二区久久恐怖片| 狠狠色综合播放一区二区| 色狠狠一区二区三区香蕉| 精品sm捆绑视频| 亚洲综合一区在线| 国产一区美女在线| 欧美日韩1区2区| 国产精品青草综合久久久久99| 日本午夜精品一区二区三区电影| 成人性色生活片免费看爆迷你毛片| 欧美三级韩国三级日本三斤| 欧美精品一区二| 最新热久久免费视频| 国产色婷婷亚洲99精品小说| 久久夜色精品一区| 一卡二卡欧美日韩| 懂色av中文字幕一区二区三区| 欧美精品日韩综合在线| 日韩美女久久久| 国产一区日韩二区欧美三区| 欧美丰满美乳xxx高潮www| 亚洲丝袜自拍清纯另类| 国产精品99久久久久久似苏梦涵| 69久久99精品久久久久婷婷| 亚洲美女屁股眼交| jlzzjlzz欧美大全| 26uuu精品一区二区| 婷婷综合五月天| 色成人在线视频| 国产精品超碰97尤物18| 国产美女在线观看一区| 日韩欧美中文字幕精品| 亚洲国产精品久久人人爱| 91热门视频在线观看| 国产日产亚洲精品系列| 久久国产精品露脸对白| 欧美精品欧美精品系列| 亚洲午夜在线视频| 日本道色综合久久| 亚洲黄色av一区| 99热这里都是精品| 一区在线中文字幕| 99热精品国产| 自拍偷拍亚洲激情| 一本大道久久a久久综合| 一区二区中文字幕在线| 成人三级在线视频| 欧美激情一区二区三区四区| 国内成人免费视频| 久久―日本道色综合久久| 极品少妇xxxx精品少妇| 精品免费一区二区三区| 美女视频网站久久| 精品国产乱码久久久久久久 | 国产乱子轮精品视频| 精品国产sm最大网站免费看| 久久99在线观看| 精品乱人伦小说| 国产精品影视天天线| 欧美精品一区二区三区久久久| 久久国产三级精品| 久久欧美一区二区| 不卡高清视频专区| 综合久久一区二区三区| 色国产综合视频| 88在线观看91蜜桃国自产| 国产精品美女久久久久aⅴ | 99久久婷婷国产综合精品 | 精品一区二区免费| 精品福利一二区| 国产乱对白刺激视频不卡| 五月婷婷综合激情| 欧美一区二区三区在线| 久久精品国产精品亚洲精品| 久久免费美女视频| 99re热这里只有精品免费视频| 亚洲一区二区三区国产| 91精品免费在线| 国产成人精品三级麻豆| 国产精品超碰97尤物18| 欧美三级视频在线| 久久se精品一区精品二区| 久久精品男人的天堂| 色综合久久久久久久久| 日韩精品乱码免费| 久久久影视传媒| 在线观看欧美精品| 国产资源精品在线观看| 国产精品久久免费看| 欧洲视频一区二区| 激情深爱一区二区| 亚洲视频免费看| 欧美一卡在线观看| 波多野结衣中文字幕一区二区三区| 一区二区三区四区亚洲| 2024国产精品| 一本久久综合亚洲鲁鲁五月天| 日韩精品一卡二卡三卡四卡无卡| 久久久精品国产99久久精品芒果| 色婷婷av一区二区三区gif| 美女脱光内衣内裤视频久久影院| 国产精品国产三级国产专播品爱网| 欧美三级中文字幕在线观看| 国产精品一区二区不卡| 亚洲电影中文字幕在线观看| 久久精品视频一区| 欧美精品自拍偷拍动漫精品| 成人三级在线视频| 久久国产福利国产秒拍| 亚洲色图欧美激情| 国产亚洲va综合人人澡精品| 欧美午夜电影在线播放| 成人黄色电影在线| 经典一区二区三区| 亚洲国产日韩在线一区模特| 国产日产欧美一区二区视频| 91.com在线观看| 一本大道综合伊人精品热热| 国产精品资源在线| 日本午夜精品一区二区三区电影| 亚洲色图一区二区三区| 久久久久久久久久久黄色| 欧美日韩和欧美的一区二区| jizzjizzjizz欧美| 国产精品综合视频| 久久99国产精品尤物| 天天综合色天天| 亚洲综合丝袜美腿| 亚洲人一二三区| 中文字幕av一区二区三区免费看| 日韩一级片在线播放| 在线亚洲欧美专区二区| av激情综合网| 高清在线成人网| 国产乱人伦精品一区二区在线观看| 日本在线不卡视频一二三区| 一区二区三区在线观看国产| 中文字幕在线不卡一区二区三区| 26uuu精品一区二区| 日韩精品一区二区三区四区视频 | 欧美日韩你懂的| 日本大香伊一区二区三区| 91偷拍与自偷拍精品| 成人网页在线观看| 国产成人av电影免费在线观看| 国模少妇一区二区三区| 久久精品av麻豆的观看方式| 欧美aa在线视频| 麻豆精品精品国产自在97香蕉| 三级在线观看一区二区| 五月婷婷激情综合|