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

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

?? rectview.cpp

?? 俄羅斯方塊代碼
?? CPP
字號:
#include "stdafx.h"
#include "Rect.h"
#include "Matrix.h"
#include "Diamond.h"

#include "RectDoc.h"
#include "RectView.h"

#include <Mmsystem.h>
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CRectView
//////////////////////////////////////////////////////////
Matrix win(15, 10);				//界面初始化 15*10 格	//													 	//
static Diamond nextblock;		//保存下一方塊的類型	//
static Diamond *block = NULL;							//
static int oldrow = 0;									//
static int oldcol= 0;									//	
static int keyCode = 0;									//			
//////////////////////////////////////////////////////////

IMPLEMENT_DYNCREATE(CRectView, CView)
BEGIN_MESSAGE_MAP(CRectView, CView)
	//{{AFX_MSG_MAP(CRectView)
	ON_WM_TIMER()
	ON_WM_KEYDOWN()
	ON_COMMAND(ID_GAME_BIGRN, OnMganBigne)
	ON_COMMAND(ID_GAME_EXIT, OnGameExit)
	ON_UPDATE_COMMAND_UI(ID_GAME_BIGRN, OnUpdateGameBigrn)
	ON_COMMAND(ID_GAME_STOP, OnGameStop)
	ON_UPDATE_COMMAND_UI(ID_GAME_STOP, OnUpdateGameStop)
	ON_UPDATE_COMMAND_UI(ID_GAME_EXIT, OnUpdateGameExit)
	ON_COMMAND(ID_GAME_END, OnGameEnd)
	ON_UPDATE_COMMAND_UI(ID_GAME_END, OnUpdateGameEnd)
	ON_COMMAND(ID_SET_GRADE_1, OnSetGrade1)
	ON_UPDATE_COMMAND_UI(ID_SET_GRADE_1, OnUpdateSetGrade1)
	ON_COMMAND(ID_SET_GRADE_2, OnSetGrade2)
	ON_UPDATE_COMMAND_UI(ID_SET_GRADE_2, OnUpdateSetGrade2)
	ON_COMMAND(ID_SET_GRADE_3, OnSetGrade3)
	ON_UPDATE_COMMAND_UI(ID_SET_GRADE_3, OnUpdateSetGrade3)
	ON_COMMAND(ID_SET_GRID, OnSetGrid)
	ON_UPDATE_COMMAND_UI(ID_SET_GRID, OnUpdateSetGrid)
	ON_UPDATE_COMMAND_UI(ID_HELP_MINYAN, OnUpdateHelpMinyan)
	ON_COMMAND(ID_SET_GRADE_0, OnSetGrade0)
	ON_UPDATE_COMMAND_UI(ID_SET_GRADE_0, OnUpdateSetGrade0)
	ON_COMMAND(ID_SET_GRADE_4, OnSetGrade4)
	ON_UPDATE_COMMAND_UI(ID_SET_GRADE_4, OnUpdateSetGrade4)
	ON_COMMAND(ID_SET_MUSIC, OnSetMusic)
	ON_UPDATE_COMMAND_UI(ID_SET_MUSIC, OnUpdateSetMusic)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CRectView construction/destruction

CRectView::CRectView()
{
	//初始化
	game_begin = false;
	game_end = true;
	game_stop = true;
	game_hasGrid = true;
	game_music = true;
	game_level = 0;
	game_speed = 13;

	OnSetMusic() ;
}

CRectView::~CRectView()
{
}

BOOL CRectView::PreCreateWindow(CREATESTRUCT& cs)
{
	return CView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CRectView drawing

void CRectView::OnDraw(CDC* pDC)
{
	CRectDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	int x = 2;
	int y = 2;
	int cx = 480;
	int cy = 375;
	win.Draw(pDC, x, y, cx, 431, RGB(0, 0, 0), false, false);
	win.Draw(pDC, x + 15, y + 15, 250, 375, RGB(0, 250, 140), true, true);
}

/////////////////////////////////////////////////////////////////////////////
// CRectView diagnostics

#ifdef _DEBUG
void CRectView::AssertValid() const
{
	CView::AssertValid();
}

void CRectView::Dump(CDumpContext& dc) const
{
	CView::Dump(dc);
}

CRectDoc* CRectView::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CRectDoc)));
	return (CRectDoc*)m_pDocument;
}
#endif //_DEBUG

void CRectView::OnTimer(UINT nIDEvent) 
{

	static int DiamondType = rand() % 11; //得到方快隨機類型
	static int col = 0;
	static int row = 0;
	static int con = 0;
	static int key = 0;
	
	win.pDC = GetDC();

	con++, key++;
	if (block == NULL)
	{
		block = new Diamond;
		block->SetDiamond(DiamondType);
		
		win.DrawDiamon(win.pDC, 12 , 2, nextblock, RGB(0, 0, 0));//抹掉nextblock舊方塊

		//>>下一方塊
		DiamondType = rand() % 11;
		nextblock.SetDiamond(DiamondType);
		win.DrawDiamon(win.pDC, 12, 2, nextblock, block->DiamondColor);//畫nextblock方塊	
		//<<下一方塊

		Print(game_level); //顯示級別信息
		col = win.cols / 2; //設置方塊默認從中間掉下
		row = 0;
	}
	
	oldcol = col;
	oldrow = row;	
	if (!win.CanDown(*block, col, row) && keyCode != VK_LEFT &&  keyCode != VK_RIGHT && key % 2 == 0)
	{
		win.DrawDiamon(win.pDC, oldcol, oldrow , *block, win.matrixColor);//抹掉舊方塊
		win.DrawDiamon(win.pDC, col , row , *block, block->DiamondColor);//畫新方塊
		
		win.Add (*block, col, row);
		if (win.Tidy()) //整理
		{
			for (int t = 0; t < win.rows; t++)
			{
				for (int j = 0; j < win.cols; j++)
				{
					if (win.gridData[t*win.cols + j] == 1)
						win.Draw(win.pDC, win.winX + (j*win.cellWidth) + 1, win.winY + (t*win.cellHeight) + 1, win.cellWidth - 2, win.cellHeight - 2, block->DiamondColor, false, false);
					else
						win.Draw(win.pDC, win.winX + (j*win.cellWidth) + 1, win.winY + (t*win.cellHeight) + 1, win.cellWidth - 2, win.cellHeight - 2, win.matrixColor, false, false);
				}
			}
			SetLevel(win.newScore ); //設置級別
		}
		
		delete block;
		block = NULL;
		keyCode = 0;
	}
	else
	{
		switch (keyCode)//鍵盤事件處理
		{
			case VK_SPACE://下落鍵
				{
					if (win.CanDown(*block, col, row))
						row = row + 1;
					else 	
						keyCode = 0;
					if (win.CanDown(*block, col, row))
							row = row + 1;
					else 	
						keyCode = 0;
					break;
				}
				
			case VK_UP://翻轉鍵
				{
					if (win.CanTrun(*block, col, row))
					{
						win.DrawDiamon(win.pDC, oldcol, oldrow , *block, RGB(0, 250, 140));//抹掉舊方塊
						block->Trun();
						keyCode = 99;
					}
					else
						keyCode = 0;
					break;
				}
				
			case VK_LEFT://向左鍵
				{
					if (win.CanLeft(*block, col, row))
					{
						col = col - 1;
					}
					
					keyCode = 0;
					key = 0;
					break;
				}
				
			case VK_RIGHT://向右鍵
				{
					if (win.CanRight(*block, col, row))
					{
						col = col + 1;
					}
					keyCode = 0;
					key = 0;
					break;
				}
			case VK_DOWN://向下鍵
				{
					if (win.CanDown(*block, col, row))
						row = row + 1;
					keyCode = 0;
					break;
				}
		}
		
		//下底
		if (win.CanDown(*block, col, row) &&(con % game_speed == 0))
		{
			row = row + 1;
			if (con == 5000)
				con = 0;
		}
		if (oldcol!=col || oldrow != row || row <= 0 || keyCode ==99)
		{
			win.DrawDiamon(win.pDC, oldcol , oldrow , *block, RGB(0, 250, 140));//抹掉舊方塊
			win.DrawDiamon(win.pDC, col  , row , *block, RGB(0, 0, 255));//畫新方塊
		}
	}
	if (con % 5 == 0)
	{
		for (int i = 0; i < win.cols; i++)  //判斷方塊是否疊到頂
		{
			if (win.gridData[i])
			{
				KillTimer(1);
				AfxMessageBox("游戲已結束!");
				win.Draw(win.pDC, win.winX , win.winY , win.winWidth , win.winHeight, RGB(0, 250, 140), true, win.hasGrid);
				
				game_begin = false;
				game_end = true;
				game_stop = true;
				stop = false;
				win.Init ();
				break;
			}
		}
	}	
	CView::OnTimer(nIDEvent);
}

void CRectView::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) 
{
	keyCode = nChar;
	
	CView::OnKeyDown(nChar, nRepCnt, nFlags);
}

void CRectView::OnMganBigne() 
{
	if (!game_begin)
	{
		srand((unsigned)time(NULL));	//設置隨機種子
		SetTimer(1, 60, NULL);			//設置定時器
		game_begin = true;
		game_stop = false;
		game_end = false;
	}
	else
	{
		game_stop = true;
		game_end = true;
	}

}


void CRectView::OnUpdateGameBigrn(CCmdUI* pCmdUI) 
{
	if (game_begin)
	{
		pCmdUI->Enable(false);
	}
	else 
	{
		pCmdUI->Enable(true);
	}
}

void CRectView::OnGameStop() //停止命令
{
	if (!game_stop)
	{
		KillTimer(1);
		stop = true;
		game_stop = true;
		game_begin = false;
	}
	else
	{
		stop = false;
		game_begin = false;
	}
}

void CRectView::OnUpdateGameStop(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable(!game_stop);
}

void CRectView::OnGameExit() 
{
	exit(1);
}

void CRectView::OnUpdateGameExit(CCmdUI* pCmdUI) 
{
}

void CRectView::OnGameEnd() //結束命令
{
	if (!game_end)
	{
		KillTimer(1); 
		stop = false;
		if (block != NULL)
			delete block;
		block = NULL;
		
		win.pDC = GetDC();
		win.Draw (win.pDC, win.winX , win.winY , win.winWidth , win.winHeight, RGB(0, 250, 140), true, win.hasGrid); //窗口重畫
		win.Init ();
		game_stop = true;
		game_end = true;
		game_begin = false;
	}
	else
	{
		game_begin = false;
	}
}

void CRectView::OnUpdateGameEnd(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable(!game_end);
}

//>>設置游戲級別 0,1,2,3,4
void CRectView::OnSetGrade0() 
{
	game_speed = 11;
	game_level = 0;
}

void CRectView::OnUpdateSetGrade0(CCmdUI* pCmdUI) 
{
	pCmdUI->SetCheck(game_level == 0);
	pCmdUI->Enable(!game_begin);	
}

void CRectView::OnSetGrade1() 
{
	game_speed = 7;
	game_level = 1;
}

void CRectView::OnUpdateSetGrade1(CCmdUI* pCmdUI) 
{
	pCmdUI->SetCheck(game_level == 1);
	pCmdUI->Enable(!game_begin);
}

void CRectView::OnSetGrade2() 
{
	game_speed = 5;
	game_level = 2;
}

void CRectView::OnUpdateSetGrade2(CCmdUI* pCmdUI) 
{
	pCmdUI->SetCheck(game_level == 2);
	pCmdUI->Enable(!game_begin);
}

void CRectView::OnSetGrade3() 
{
	game_speed = 3;
	game_level = 3;
}

void CRectView::OnUpdateSetGrade3(CCmdUI* pCmdUI) 
{
	pCmdUI->SetCheck(game_level == 3);
	pCmdUI->Enable(!game_begin);
}

void CRectView::OnSetGrade4() 
{
	game_speed = 2;
	game_level = 4;
}

void CRectView::OnUpdateSetGrade4(CCmdUI* pCmdUI) 
{
	pCmdUI->SetCheck(game_level == 4);
	pCmdUI->Enable(!game_begin);	
}
//<<設置游戲級別


void CRectView::OnSetGrid() //設置網格
{
	if (game_hasGrid)
	{
		win.hasGrid =false;
		game_hasGrid = false;
	}
	else
	{
		win.hasGrid =true;
		game_hasGrid = true;
	}
	CDC  *pDC = GetDC();
	win.Draw(pDC, win.winX , win.winY , win.winWidth , win.winHeight, RGB(0, 250, 140), true, win.hasGrid);
}

void CRectView::OnUpdateSetGrid(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable(!game_begin);
	pCmdUI->SetCheck(game_hasGrid);
}


void CRectView::OnUpdateHelpMinyan(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable(true);
}


void CRectView::Print(int level) //顯示級別信息
{
	win.pDC->FillSolidRect(win.winWidth + win.winX + 8, win.winY + 230, 160, 120, RGB(0, 0, 0));
	win.pDC->FillSolidRect(win.winWidth + 9 + win.winX, win.winY + 350, 160, 20, RGB(255, 0, 0));	

	CString live;
	CString gonli;
	win.pDC->FillSolidRect(win.winWidth + 9 + win.winX, win.winY + 350, oldrow * 10 , 20, RGB(100, 255, 100));
	win.pDC -> SetBkColor(RGB(0, 0, 0));
	win.pDC -> SetTextColor(RGB(255, 200, 200));
	live.Format("    體力還有:  %d ",(oldrow)  * 8);
	gonli.Format("    功力為: %d  ",win .newScore + win.oldScore);
	win.pDC -> TextOut(win.winWidth + 19 + win.winX, win.winY + 330, live);
	win.pDC -> TextOut(win.winWidth + 19 + win.winX, win.winY + 270, gonli);

	switch (level)
		{
			case 0:
				win.pDC -> TextOut(win.winWidth + 9 + win.winX, win.winY + 200, "       身份: 小叫化 !");
				break;
			case 1:
				win.pDC -> TextOut(win.winWidth + 9 + win.winX, win.winY + 200, "    身份: 小乞丐 !");
				break;
			case 2:
				win.pDC -> TextOut(win.winWidth + 9 + win.winX, win.winY + 200, "     身份: 護法長老 !");
				break;
			case 3:
				win.pDC -> TextOut(win.winWidth + 9 + win.winX, win.winY + 200, "     身份: 執法長老 !");
				break;
			case 4:
				win.pDC -> TextOut(win.winWidth + 9 + win.winX, win.winY + 200, "     身份: 幫主 !");
				break;
		}
		
		switch (level)
		{
			case 0:
				win.pDC->FillSolidRect(win.winWidth + 9 + win.winX, win.winY + 290, 160, 20, RGB(30, 155, 100));
				win.pDC->FillSolidRect(win.winWidth + 9 + win.winX, win.winY + 290, win.newScore/25, 20, RGB(255, 255, 0));
				break;
			case 1:
				win.pDC->FillSolidRect(win.winWidth + 9 + win.winX, win.winY + 290, 160, 20, RGB(255, 255, 0));
				win.pDC->FillSolidRect(win.winWidth + 9 + win.winX, win.winY + 290, (win.newScore)/25, 20, RGB(150, 255, 255));
				break;
			case 2:
				win.pDC->FillSolidRect(win.winWidth + 9 + win.winX, win.winY + 290, 160, 20, RGB(150, 255, 255));
				win.pDC->FillSolidRect(win.winWidth + 9 + win.winX, win.winY + 290, (win.newScore)/25, 20, RGB(255, 255, 0));
				break;
			case 3:
				win.pDC->FillSolidRect(win.winWidth + 9 + win.winX, win.winY + 290, 160, 20, RGB(255, 255, 0));
				win.pDC->FillSolidRect(win.winWidth + 9 + win.winX, win.winY + 290, (win.newScore)/25, 20, RGB(150, 255, 255));
				break;
			case 4:
				win.pDC->FillSolidRect(win.winWidth + 9 + win.winX, win.winY + 290, 160, 20, RGB(150, 255, 255));
				win.pDC->FillSolidRect(win.winWidth + 9 + win.winX, win.winY + 290, (win.newScore)/20, 20, RGB(255, 255, 0));
				break;
		}
}

void CRectView::SetLevel(int  Score) //設置級別
{
	if ( Score >=  4000)
	{
		switch (game_level)
		{
			case 0:
				win.oldScore =win.oldScore + 4000;
				win.newScore = win.newScore - 4000;
				KillTimer(1);
				AfxMessageBox("恭喜升為小乞丐!!");
				OnSetGrade1();
				SetTimer(1, 60, NULL);
				break;
			case 1:
				win.oldScore =win.oldScore + 4000;
				win.newScore = win.newScore - 4000;
				KillTimer(1);
				AfxMessageBox("恭喜升為護法長老!!");
				OnSetGrade2();
				SetTimer(1, 60, NULL);
				break;
			case 2:
				win.oldScore =win.oldScore + 4000;
				win.newScore = win.newScore - 4000;
				KillTimer(1);
				AfxMessageBox("恭喜升為執法長老!!");
				OnSetGrade3();
				SetTimer(1, 60, NULL);
				break;
			case 3:
				win.oldScore =win.oldScore + 4000;
				win.newScore = win.newScore - 4000;
				KillTimer(1);
				AfxMessageBox("恭喜升為幫主!!");
				OnSetGrade4();
				SetTimer(1, 60, NULL);
				break;
		}
	}
}

void CRectView::OnSetMusic() //播放音樂
{  
	if(game_music)
	{
		game_music =false;
		HWND hWnd;
		hWnd = GetSafeHwnd();

		char inBuf[300],outBuf[60],fileName[255];
		MCIERROR mciError;

		strcpy(fileName,"music.mid"); 
		wsprintf( inBuf,"open %s type sequencer alias myseq",fileName);
		mciError = mciSendString( inBuf, outBuf, sizeof(outBuf), NULL);
		if (mciError == 0)
		{
			mciError = mciSendString("play myseq notify",NULL,0, hWnd);
			if (mciError != 0)
				mciSendString("close myseq",NULL,0,NULL);
		}
	}
	else
	{
		game_music = true;
		mciSendString("close myseq",NULL,0,NULL);
	}	
}

void CRectView::OnUpdateSetMusic(CCmdUI* pCmdUI) 
{
	pCmdUI->SetCheck(!game_music);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区三区在线观看免费| 亚洲欧美日韩国产中文在线| 成人成人成人在线视频| 亚洲电影一区二区三区| 久久精品一级爱片| 欧美日韩精品专区| 不卡的电影网站| 久久精品噜噜噜成人av农村| 一区二区三区精品视频| 国产精品视频yy9299一区| 91精品国产综合久久小美女| 99国产欧美另类久久久精品| 国产资源精品在线观看| 日韩专区在线视频| 亚洲图片一区二区| 亚洲图片激情小说| 国产精品入口麻豆九色| 久久综合久久鬼色中文字| 欧美精品在线观看播放| 91国偷自产一区二区三区观看| 成人毛片在线观看| 国产高清久久久| 韩日欧美一区二区三区| 麻豆精品一区二区| 日本不卡在线视频| 婷婷六月综合亚洲| 午夜精品久久久久久不卡8050| 一区二区三区在线视频观看| 亚洲三级视频在线观看| 国产精品福利av| 国产精品欧美综合在线| 亚洲国产精品成人久久综合一区| 精品久久久久久久一区二区蜜臀| 一区二区三区中文在线观看| 国产精品国产自产拍高清av| 国产精品欧美一区二区三区| 中文一区在线播放| 综合亚洲深深色噜噜狠狠网站| 国产精品拍天天在线| 国产精品激情偷乱一区二区∴| 国产精品沙发午睡系列990531| 中文字幕第一区二区| 中文一区二区完整视频在线观看| 中文字幕 久热精品 视频在线| 国产视频视频一区| 亚洲欧洲日韩av| 综合av第一页| 亚洲成人午夜电影| 免费国产亚洲视频| 国产一区二区三区免费播放| 国产盗摄精品一区二区三区在线 | 欧美日韩国产首页| 精品视频免费看| 7777精品伊人久久久大香线蕉的| 制服丝袜在线91| 精品美女一区二区| 国产精品五月天| 亚洲精品自拍动漫在线| 亚洲国产视频直播| 青青草伊人久久| 国产精品一区2区| 成人av资源在线| 欧美综合亚洲图片综合区| 欧美久久一二三四区| 日韩美女视频在线| 中文天堂在线一区| 亚洲成av人片在www色猫咪| 美女一区二区久久| 不卡的电影网站| 欧美伦理视频网站| 日韩精品一区二区在线| 国产精品久久久久久久久动漫| 亚洲影院理伦片| 激情综合网激情| 色欧美日韩亚洲| 日韩欧美激情四射| 中文字幕中文字幕一区二区| 午夜免费欧美电影| 国产成人av在线影院| 精品电影一区二区| 最新日韩在线视频| 日韩 欧美一区二区三区| 国产成人av电影在线观看| 欧美性极品少妇| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 丁香另类激情小说| 欧美中文字幕一二三区视频| 青娱乐精品在线视频| 国产一区二区三区不卡在线观看 | 欧美高清dvd| 久久精品一区蜜桃臀影院| 亚洲一区二区av在线| 狠狠色丁香婷婷综合| 91久久精品一区二区| 精品对白一区国产伦| 亚洲自拍偷拍九九九| 国产精品456露脸| 欧美日韩国产影片| 国产精品久久久久精k8| 麻豆国产精品官网| 欧美亚洲自拍偷拍| 中文字幕日韩一区| 国产综合色视频| 91精品国产一区二区三区蜜臀| 亚洲视频在线一区二区| 国产成人自拍网| 日韩精品专区在线影院重磅| 亚洲va欧美va国产va天堂影院| www.日韩av| 国产亚洲欧美激情| 精品一区二区三区视频| 678五月天丁香亚洲综合网| 亚洲欧美区自拍先锋| 国产99久久久国产精品| 精品国产制服丝袜高跟| 日韩精品每日更新| 欧美视频自拍偷拍| 亚洲免费在线视频| 99久久精品免费| 欧美国产日本视频| 国产成人鲁色资源国产91色综| 日韩欧美国产三级电影视频| 日韩中文字幕一区二区三区| 欧美视频一区二区三区| 亚洲精品伦理在线| 91麻豆视频网站| 一区二区三区四区视频精品免费| 99久久精品99国产精品| 国产精品国产馆在线真实露脸| 国产91精品露脸国语对白| 久久久99精品久久| 国产精品一级在线| 国产亚洲一区二区三区在线观看| 国产在线一区二区| 国产农村妇女精品| 91精品国产高清一区二区三区| 日韩高清一区二区| 欧美成人一区二区三区片免费| 日本美女视频一区二区| 日韩欧美高清在线| 久久99国产精品久久99| 精品对白一区国产伦| 国产精品1区2区| 中文一区二区完整视频在线观看| 成人黄色综合网站| 亚洲欧美日韩国产综合| 欧美色视频在线| 秋霞影院一区二区| 久久影视一区二区| 成人免费视频免费观看| 亚洲欧美另类久久久精品2019| 欧美在线高清视频| 免播放器亚洲一区| 精品粉嫩aⅴ一区二区三区四区| 国产91对白在线观看九色| 亚洲欧洲精品成人久久奇米网| 日本大香伊一区二区三区| 天天色综合成人网| 亚洲精品一区二区三区影院| 福利一区福利二区| 一区二区三区色| 日韩免费电影一区| 成人av小说网| 亚洲午夜久久久久久久久久久| 欧美一区二区精美| 国产成人一级电影| 亚洲一区二区三区不卡国产欧美| 日韩一区二区精品在线观看| 国产一区二区在线观看视频| 亚洲视频一区二区免费在线观看| 欧美午夜精品免费| 国产专区欧美精品| 亚洲欧美日韩在线播放| 欧美一区二区三区喷汁尤物| 国产成人精品免费看| 一区二区三区在线播放| 日韩欧美国产精品一区| 91色porny在线视频| 日韩高清欧美激情| 国产精品久久久久永久免费观看| 欧美日韩在线播放| 国产成a人亚洲精品| 首页国产丝袜综合| 国产精品女同互慰在线看| 3d动漫精品啪啪一区二区竹菊| 成人性生交大片免费| 奇米色一区二区| 亚洲欧美另类在线| 久久久电影一区二区三区| 欧美色图第一页| 丁香六月久久综合狠狠色| 日本 国产 欧美色综合| 亚洲蜜臀av乱码久久精品蜜桃| 精品福利av导航| 91精品国产综合久久精品app| 成人激情视频网站| 久久国产综合精品| 视频一区中文字幕国产| 一区二区三区在线视频免费观看| 国产女人18毛片水真多成人如厕 |