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

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

?? skyblue_rectview.cpp

?? 游戲 demo 高視覺效果?蝸?demo 高視覺效果
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
// skyblue_RectView.cpp : implementation of the CSkyblue_RectView class
//

#include "stdafx.h"
#include "skyblue_Rect.h"

#include "skyblue_RectDoc.h"
#include "skyblue_RectView.h"
#include "OptionDlg.h"
//#include "OptionDlg.h"

//音樂播放
#include "mmsystem.h"
#pragma comment(lib,"Winmm.lib")

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CSkyblue_RectView

IMPLEMENT_DYNCREATE(CSkyblue_RectView, CView)

BEGIN_MESSAGE_MAP(CSkyblue_RectView, CView)
	//{{AFX_MSG_MAP(CSkyblue_RectView)
	ON_COMMAND(ID_GAME_EXIT, OnGameExit)
	ON_COMMAND(ID_HELP_ABOUT, OnHelpAbout)
	ON_COMMAND(ID_GAME_START, OnGameStart)
	//}}AFX_MSG_MAP
	// Standard printing commands

	ON_WM_KEYDOWN()
	ON_WM_TIMER()
	ON_COMMAND(ID_GAME_START, OnGameStart)
	ON_COMMAND(ID_GAME_END, OnGameEnd)
	ON_COMMAND(ID_GAME_OPTION, OnGameOption)
	ON_UPDATE_COMMAND_UI(ID_GAME_START, OnUpdateGameStart)
	ON_UPDATE_COMMAND_UI(ID_GAME_OPTION, OnUpdateGameOption)
	ON_UPDATE_COMMAND_UI(ID_GAME_END, OnUpdateGameEnd)
	ON_UPDATE_COMMAND_UI(ID_GAME_EXIT, OnUpdateGameExit)
	ON_UPDATE_COMMAND_UI(ID_HELP_ABOUT, OnUpdateHelpAbout)
	ON_UPDATE_COMMAND_UI(ID_HELP_HELP, OnUpdateHelpHelp)
	ON_WM_CREATE()
	ON_COMMAND(ID_HELP_HELP, OnHelpHelp)
	ON_UPDATE_COMMAND_UI(ID_OPTION_AREA1, OnUpdateOptionArea1)
	ON_UPDATE_COMMAND_UI(ID_OPTION_AREA2, OnUpdateOptionArea2)
	ON_UPDATE_COMMAND_UI(ID_OPTION_AREA3, OnUpdateOptionArea3)
	ON_UPDATE_COMMAND_UI(ID_OPTION_AREA4, OnUpdateOptionArea4)
	ON_COMMAND(ID_OPTION_AREA1, OnOptionArea1)
	ON_COMMAND(ID_OPTION_AREA2, OnOptionArea2)
	ON_COMMAND(ID_OPTION_AREA3, OnOptionArea3)
	ON_COMMAND(ID_OPTION_AREA4, OnOptionArea4)
	ON_UPDATE_COMMAND_UI(ID_OPTION_LEVEL1, OnUpdateOptionLevel1)
	ON_UPDATE_COMMAND_UI(ID_OPTION_LEVEL2, OnUpdateOptionLevel2)
	ON_UPDATE_COMMAND_UI(ID_OPTION_LEVEL3, OnUpdateOptionLevel3)
	ON_UPDATE_COMMAND_UI(ID_OPTION_LEVEL4, OnUpdateOptionLevel4)
	ON_UPDATE_COMMAND_UI(ID_OPTION_LEVEL5, OnUpdateOptionLevel5)
	ON_UPDATE_COMMAND_UI(ID_OPTION_LEVEL6, OnUpdateOptionLevel6)
	ON_COMMAND(ID_OPTION_LEVEL1, OnOptionLevel1)
	ON_COMMAND(ID_OPTION_LEVEL2, OnOptionLevel2)
	ON_COMMAND(ID_OPTION_LEVEL3, OnOptionLevel3)
	ON_COMMAND(ID_OPTION_LEVEL4, OnOptionLevel4)
	ON_COMMAND(ID_OPTION_LEVEL5, OnOptionLevel5)
	ON_COMMAND(ID_OPTION_LEVEL6, OnOptionLevel6)
	ON_UPDATE_COMMAND_UI(ID_OPTION_GRID, OnUpdateOptionGrid)
	ON_COMMAND(ID_OPTION_GRID, OnOptionGrid)
	ON_UPDATE_COMMAND_UI(ID_OPTION_MUSIC, OnUpdateOptionMusic)
	ON_COMMAND(ID_OPTION_MUSIC, OnOptionMusic)
	ON_UPDATE_COMMAND_UI(ID_GAME_PAUSH, OnUpdateGamePaush)
	ON_COMMAND(ID_GAME_PAUSH, OnGamePaush)

END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CSkyblue_RectView construction/destruction

CSkyblue_RectView::CSkyblue_RectView()
{
	//第一次開始游戲
	m_bFistPlay = TRUE;

	

	//缺省為不是游戲暫停狀態
	m_bGamePaush = FALSE;

	//缺省為不插放背景音樂
	m_bMusic = FALSE;
	
	//缺省為畫網格線
	m_bDrawGrid = TRUE;

	//總分值清零
	m_iPerformance = 0;

	//測試值:為12行,10列
	m_iRow = 12;
	m_iCol = 10;

	//左上角X,Y坐標
	m_iStartX = 10;
	m_iStartY = 10;

	//缺省級別為3級
	m_iLevel = 2;
	//第一種樣式
	m_iBlockSytle = 0;

	//缺省方塊大小為m_iLarge個象素
	m_iLarge = 30;

	//缺省游戲是結束的
		m_bGameEnd = TRUE;

	int i,j;

	//賦初值
	for (i=0;i<100;i++)
		for (j=0;j<100;j++)
			GameStatus[i][j]=0;

	//各種形狀方塊的接觸面數據,參見設計書的接觸面表格, 
	//如果某種形狀的方塊沒有4個接觸面,則后面的數據填-1
	for (i=0;i<74;i++)
		for (j=0;j<4;j++)
			InterFace[i][j] = -1;

/*
1  ----
*/
	InterFace[1][0] = 3;
	
	InterFace[11][0] = 0;	InterFace[11][1] = 1;	InterFace[11][2] = 2;	InterFace[11][3] = 3;
/*
2	--
	--
*/  
	InterFace[2][0] = 1;	InterFace[2][1] = 3;
/*
3   -
   ---

*/	
	InterFace[3][0] = 0;	InterFace[3][1] = 2;	InterFace[3][2] = 3;
	
	InterFace[31][0] = 2;	InterFace[31][1] = 3;
	
	InterFace[32][0] = 0;	InterFace[32][1] = 2;	InterFace[32][2] = 3;
	
	InterFace[33][0] = 0;	InterFace[33][1] = 3;
/*
4  --
  --
*/	
	InterFace[4][0] = 1;	InterFace[4][1] = 3;
	
	InterFace[41][0] = 0;	InterFace[41][1] = 2;	InterFace[41][2] = 3;
/*
5  --
    --
*/	
	InterFace[5][0] = 1;	InterFace[5][1] = 3;

	InterFace[51][0] = 0;	InterFace[51][1] = 2;	InterFace[51][2] = 3;
/*
6  --
    -
	-
*/	
	InterFace[6][0] = 0;	InterFace[6][1] = 3;
	
	InterFace[61][0] = 1;	InterFace[61][1] = 2;	InterFace[61][2] = 3;

	InterFace[62][0] = 2;	InterFace[62][1] = 3;

	InterFace[63][0] = 0;	InterFace[63][1] = 1;	InterFace[63][2] = 3;
/*
7  --
   -
   -
*/
	InterFace[7][0] = 2;	InterFace[7][1] = 3;	
	InterFace[71][0] = 1;	InterFace[71][1] = 2;	InterFace[71][2] = 3;

	InterFace[72][0] = 0;	InterFace[72][1] = 3;

	InterFace[73][0] = 0;	InterFace[73][1] = 1;	InterFace[73][2] = 3;

}

CSkyblue_RectView::~CSkyblue_RectView()
{
}

BOOL CSkyblue_RectView::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs

	return CView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CSkyblue_RectView drawing






//創建一些設備
int CSkyblue_RectView::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CView::OnCreate(lpCreateStruct) == -1)
		return -1;
	


	//決定第一次掉下來的方塊的樣式
	m_inextStatus = Random(7);
	
	return 0;
}

/* * * * * * * * * * * * * * * * * * * * * * * * *
*
*  名稱:OnDraw
*
*  功能:承擔所有繪制屏幕工作
*
*  最后修改時間:2005.8.6
*
* * * * * * * * * * * * * * * * * * * * * * * * */
void CSkyblue_RectView::OnDraw(CDC* pDC)
{
	DcEnvInitial();
	DrawGame(&m_memDC);  //在內存位圖的游戲區域繪制

	pDC->BitBlt(0,0,m_nWidth,m_nHeight,&m_memDC,0,0,SRCCOPY);
}
//
//繪圖設備環境的初始化
//
void CSkyblue_RectView::DcEnvInitial(void)
{
	if(m_bFistPlay)
	{
		m_bFistPlay = FALSE;
		//用默認的參數,獲取當前屏幕設備環境
		CDC *pWindowDC = GetDC();

		//1.用于映射屏幕的內存設備環境
		//獲取游戲窗口的大小用于下面設置內存位圖的尺寸
		CRect windowRect;
		GetClientRect(&windowRect);
		m_nWidth = windowRect.Width();
		m_nHeight = windowRect.Height();

		//內存設備環境與屏幕設備環境關聯(兼容)
		m_memDC.CreateCompatibleDC(pWindowDC);
		//內存位圖與與屏幕關聯(兼容),大小為游戲窗口的尺寸
		m_memBmp.CreateCompatibleBitmap(pWindowDC,m_nWidth,m_nHeight);
		//內存設備環境與內存位圖關聯,以便通過m_memDC在內存位圖上作畫
		m_memDC.SelectObject(&m_memBmp);

		//2.存儲方塊位圖的內存資源
		//內存設備環境與屏幕設備環境關聯(兼容)
		m_memRectDC.CreateCompatibleDC(pWindowDC);
		//相當于將外部位圖rect.bmp動態載入m_hMemRectBmp中
		m_hMemRectBmp=(HBITMAP)LoadImage(NULL,"rect.bmp",IMAGE_BITMAP,150,30,LR_LOADFROMFILE);
		//內存設備環境與內存位圖關聯,以便通過m_memDC在內存位圖上作畫
		SelectObject(m_memRectDC.m_hDC, m_hMemRectBmp);	


	
	//黑色的黑筆
	m_pBlackPen  = new CPen(PS_SOLID,1,BLACK);

	//畫刷
	m_pGrayBrush  = new CBrush(RGB(66,66,66));
	m_pBlackBrush  = new CBrush(BLACK);
	}
}

void CSkyblue_RectView::DCEnvClear(void)
{
	//設備環境
	m_memDC.DeleteDC();
	m_memRectDC.DeleteDC();
	//位圖資源
	DeleteObject(m_memBmp);
	DeleteObject(m_hMemRectBmp);


	delete(m_pBlackPen);
	delete(m_pGrayBrush);
	delete(m_pBlackBrush);

}


void CSkyblue_RectView::DrawGame(CDC *pDC)
{
		int i,j;
	//選用黑色畫刷,繪制整個游戲所在窗口的背景
	pDC -> SelectObject(m_pBlackBrush);
	CRect rect;
	GetClientRect(&rect);
	pDC -> Rectangle(rect);

	//選用灰色畫刷,繪制游戲區域的背景
	pDC -> SelectObject(m_pGrayBrush);
	pDC -> Rectangle(m_iStartY ,m_iStartX, m_iStartY + 301, m_iStartX + 360);	

	pDC->SelectObject(m_pBlackPen);	
	//畫網格線
	if (m_bDrawGrid)
	{
		//畫橫線
		for (i=0;i<m_iRow;i++)
		{
			pDC->MoveTo(m_iStartY, m_iStartX + i*m_iLarge);
			pDC->LineTo(m_iStartY+300, m_iStartX +i*m_iLarge);
		}	
		
		//畫豎線
		for (i=0;i<m_iCol;i++)
		{
			pDC->MoveTo(m_iStartY+i*m_iLarge, m_iStartX);
			pDC->LineTo(m_iStartY+i*m_iLarge, m_iStartX+360);
		}
	}

	int x,y,nW,nH;

	//小方塊的繪制
	for (i=0;i<m_iRow;i++)
		for (j=0;j<m_iCol;j++)
		{
			if (GameStatus[i][j]==MAP_STATE_NOT_EMPTY)
			{
				//在游戲區域中狀態為被占用狀態的區域繪制小方塊
				x = m_iStartY+j*m_iLarge +2;
				y = m_iStartX+i*m_iLarge +2;
				nW = m_iLarge-4;
				nH = m_iLarge-4;
			pDC->BitBlt(x,y,nW,nH,&m_memRectDC,m_iBlockSytle*30,0,SRCCOPY);
			}
		}

	//顯示游戲區域及游戲級別的漢字描述
	if (!m_bGameEnd)
	{
		pDC -> SetBkColor(BLACK);
		pDC -> SetTextColor(WHITE);
		pDC -> TextOut(m_iStartY+320, m_iStartX+220, "游戲區域大小:");
		pDC -> TextOut(m_iStartY+320, m_iStartX+240,m_strArea);

		pDC -> TextOut(m_iStartY+320, m_iStartX+280, "游戲級別:");
		pDC -> TextOut(m_iStartY+320, m_iStartX+300,m_strLevel);
	}
				
	//顯示總分
	if (!m_bGameEnd)
	{
		CString lsStr;	
		lsStr.Format("總分為:%d 分",m_iPerformance);
		pDC -> SetBkColor(BLACK);
		pDC -> SetTextColor(WHITE);
		pDC -> TextOut(m_iStartY+320, m_iStartX+180,lsStr);
	}

	//畫下一次將要出現的方塊,用于提示用戶
	if (!m_bGameEnd)
	{
		pDC -> SetBkColor(BLACK);
		pDC -> SetTextColor(WHITE);
		pDC -> TextOut(m_iStartY+320, m_iStartX,"下一個方塊:");

		int x,y,nW,nH;		
		for (UINT k=0;k<4;k++)
		{
			i = NextStatus[k][0];
		    j = NextStatus[k][1];

				x = m_iStartY+j*30 +2+320;
				y = m_iStartX+i*30 +2+30;
				nW = m_iLarge-4;
				nH = m_iLarge-4;
		pDC->BitBlt(x,y,nW,nH,&m_memRectDC,m_iBlockSytle*30,0,SRCCOPY);
		}
	}
}

/* * * * * * * * * * * * * * * * * * * * * * * * *
*
*  名稱:OnTimer
*
*  功能:承擔所有驅動工作
*
*  最后修改時間:2005.8.6
*
* * * * * * * * * * * * * * * * * * * * * * * * */
//void CSkyblue_RectView::OnTimer(UINT nIDEvent) 

void CSkyblue_RectView::OnTimer(UINT nIDEvent) 
{
     		
	//如果原來的方塊已到底或游戲剛開始,則掉下一個新的方塊
	int i,j,k;
	if (m_isBottom)
	{
		
		//1.產生下一個隨機下墜物
		m_icurrentStatus = m_inextStatus=6;
		m_inextStatus = Random(7);  //得到下一次的方塊樣式
	//	if (m_inextStatus==0) m_inextStatus++;

		//2.修改新的“下一下墜物”
		RectStatusToNextStatus( m_inextStatus );
	//	CRect rect(m_iStartY+320, m_iStartX, m_iStartY+440, m_iStartX+160);
		//InvalidateRect(&rect);
	//	Invalidate(FALSE);
		
		//3.將舊的“下一下墜物”用作當前使用
		m_currentRect = m_icurrentStatus;   
		//根據當前下墜物的形狀去初始化激活狀態下的下墜物坐標
		RectStatusToActiveStatus( m_icurrentStatus );
		//將當前動態數組中的數據反映到大數組中
		ActiveStatusToGameStatus();
	    m_isBottom = FALSE;

		//4.判斷當前方塊是否已到底
		IsBottom();

    	//5.判斷游戲是否已結束: 碰了底,且第1行有小方塊
		if (FALSE)
			for (i=0;i<m_iCol;i++)
				if (GameStatus[0][i])
				{
					KillTimer(1);
					AfxMessageBox("游戲已結束!");
					for (j=0;j<m_iRow;j++)
						for (k=0;k<m_iCol;k++)
							GameStatus[j][k]=0;
					Invalidate(FALSE);
					m_bGameEnd = TRUE;
					break;
				}
     Invalidate(FALSE);
	//	InvalidateCurrent();

	}
	else  //當前方塊下降
	{
		RectDown();
	}
//	MessageBox("jjj");
	CView::OnTimer(nIDEvent);
}


/* * * * * * * * * * * * * * * * * * * * * *
* 函數:產生一個最大值不大于指定值的隨機正整數(Random)
*
* 參數:MaxNumber : 隨機數的上限
* 
* 返回值: 產生的隨機數
*
* 最后修改日期:2005.8.6
* * * * * * * * * * * * * * * * * * * * * */
int CSkyblue_RectView::Random(int MaxNumber)
{
	//部下隨機種子
	srand( (unsigned)time( NULL ) );
	//產生隨機數
	int random = rand() % MaxNumber;
	//保證非0
	if(random == 0 ) random++;

	return random;
}


/* * * * * * * * * * * * * * * * * * * * * *
* 內部函數:將當前下墜物的位置映射到游戲區域地圖數組中去
*
* 最后修改日期:2005.8.6
* * * * * * * * * * * * * * * * * * * * * */
void CSkyblue_RectView::ActiveStatusToGameStatus()
{
	int x1,x2,x3,x4,y1,y2,y3,y4;
	x1 = ActiveStatus[0][0];
	x2 = ActiveStatus[1][0];
	x3 = ActiveStatus[2][0];
	x4 = ActiveStatus[3][0];
	y1 = ActiveStatus[0][1];
	y2 = ActiveStatus[1][1];
	y3 = ActiveStatus[2][1];
	y4 = ActiveStatus[3][1];
	GameStatus[x1][y1]=MAP_STATE_NOT_EMPTY;
	GameStatus[x2][y2]=MAP_STATE_NOT_EMPTY;
	GameStatus[x3][y3]=MAP_STATE_NOT_EMPTY;
	GameStatus[x4][y4]=MAP_STATE_NOT_EMPTY;
}

/* * * * * * * * * * * * * * * * * * * * * *
* 內部函數:初始掉落時,將根據方塊的樣式決定當前動態數組的值
*
* 最后修改日期:2005.8.6
* * * * * * * * * * * * * * * * * * * * * */
void CSkyblue_RectView::RectStatusToActiveStatus(int m_which)
{

	switch(m_which)
	{
	case 1:   
		ActiveStatus[0][0] = 0;	ActiveStatus[0][1] = 5;	ActiveStatus[1][0] = 1;	ActiveStatus[1][1] = 5;
		ActiveStatus[2][0] = 2;	ActiveStatus[2][1] = 5;	ActiveStatus[3][0] = 3;	ActiveStatus[3][1] = 5;
		break;
	case 2:    
		ActiveStatus[0][0] = 0;	ActiveStatus[0][1] = 5;	ActiveStatus[1][0] = 1;	ActiveStatus[1][1] = 5;
		ActiveStatus[2][0] = 0;	ActiveStatus[2][1] = 6;	ActiveStatus[3][0] = 1;	ActiveStatus[3][1] = 6;
		break;
	case 3:
		ActiveStatus[0][0] = 1;	ActiveStatus[0][1] = 4;	ActiveStatus[1][0] = 0;	ActiveStatus[1][1] = 5;
		ActiveStatus[2][0] = 1;	ActiveStatus[2][1] = 5;	ActiveStatus[3][0] = 1;	ActiveStatus[3][1] = 6;
		break;
	case 4:
		ActiveStatus[0][0] = 0;	ActiveStatus[0][1] = 5;	ActiveStatus[1][0] = 1;	ActiveStatus[1][1] = 5;
		ActiveStatus[2][0] = 1;	ActiveStatus[2][1] = 6;	ActiveStatus[3][0] = 2;	ActiveStatus[3][1] = 6;
		break;
	case 5:
		ActiveStatus[0][0] = 1;	ActiveStatus[0][1] = 5;	ActiveStatus[1][0] = 2;	ActiveStatus[1][1] = 5;
		ActiveStatus[2][0] = 0;	ActiveStatus[2][1] = 6;	ActiveStatus[3][0] = 1;	ActiveStatus[3][1] = 6;
		break;
	case 6:
		ActiveStatus[0][0] = 0;	ActiveStatus[0][1] = 5;	ActiveStatus[1][0] = 0;	ActiveStatus[1][1] = 6;
		ActiveStatus[2][0] = 1;	ActiveStatus[2][1] = 6;	ActiveStatus[3][0] = 2;	ActiveStatus[3][1] = 6;
		break;
	case 7:
		ActiveStatus[0][0] = 0;	ActiveStatus[0][1] = 5;	ActiveStatus[1][0] = 1;	ActiveStatus[1][1] = 5;
		ActiveStatus[2][0] = 2;	ActiveStatus[2][1] = 5;	ActiveStatus[3][0] = 0;	ActiveStatus[3][1] = 6;
		break;
	}
}

/* * * * * * * * * * * * * * * * * * * * * *
* 內部函數:初始掉落時,將根據方塊的樣式決定下一次將要掉下來的動態數組的值
*
* 最后修改日期:2005.8.6
* * * * * * * * * * * * * * * * * * * * * */
void CSkyblue_RectView::RectStatusToNextStatus(int m_which)
{
	switch(m_which)
	{
	case 1:
		NextStatus[0][0] = 0;	NextStatus[0][1] = 1;	NextStatus[1][0] = 1;	NextStatus[1][1] = 1;
		NextStatus[2][0] = 2;	NextStatus[2][1] = 1;	NextStatus[3][0] = 3;	NextStatus[3][1] = 1;
		break;
	case 2:
		NextStatus[0][0] = 0;	NextStatus[0][1] = 1;	NextStatus[1][0] = 1;	NextStatus[1][1] = 1;
		NextStatus[2][0] = 0;	NextStatus[2][1] = 2;	NextStatus[3][0] = 1;	NextStatus[3][1] = 2;
		break;
	case 3:
		NextStatus[0][0] = 1;	NextStatus[0][1] = 0;	NextStatus[1][0] = 0;	NextStatus[1][1] = 1;
		NextStatus[2][0] = 1;	NextStatus[2][1] = 1;	NextStatus[3][0] = 1;	NextStatus[3][1] = 2;
		break;
	case 4:
		NextStatus[0][0] = 0;	NextStatus[0][1] = 1;	NextStatus[1][0] = 1;	NextStatus[1][1] = 1;
		NextStatus[2][0] = 1;	NextStatus[2][1] = 2;	NextStatus[3][0] = 2;	NextStatus[3][1] = 2;
		break;
	case 5:
		NextStatus[0][0] = 1;	NextStatus[0][1] = 1;	NextStatus[1][0] = 2;	NextStatus[1][1] = 1;
		NextStatus[2][0] = 0;	NextStatus[2][1] = 2;	NextStatus[3][0] = 1;	NextStatus[3][1] = 2;
		break;
	case 6:
		NextStatus[0][0] = 0;	NextStatus[0][1] = 1;	NextStatus[1][0] = 0;	NextStatus[1][1] = 2;
		NextStatus[2][0] = 1;	NextStatus[2][1] = 2;	NextStatus[3][0] = 2;	NextStatus[3][1] = 2;
		break;
	case 7:
		NextStatus[0][0] = 0;	NextStatus[0][1] = 1;	NextStatus[1][0] = 1;	NextStatus[1][1] = 1;
		NextStatus[2][0] = 2;	NextStatus[2][1] = 1;	NextStatus[3][0] = 0;	NextStatus[3][1] = 2;
		break;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99re6这里只有精品视频在线观看| 99久久免费精品高清特色大片| 国产丝袜美腿一区二区三区| 色综合久久九月婷婷色综合| 日本不卡高清视频| 亚洲乱码国产乱码精品精98午夜 | 国产成人无遮挡在线视频| 亚洲女人的天堂| 久久久综合精品| 欧美久久久久久蜜桃| 91女人视频在线观看| 国产一区二区三区蝌蚪| 亚洲成人激情自拍| 国产精品高潮呻吟久久| 精品少妇一区二区三区在线播放 | 成人av在线一区二区| 日本系列欧美系列| 亚洲一区二区三区四区五区中文| 久久久精品综合| 在线观看91精品国产麻豆| 91在线免费看| 国产成人在线看| 九九国产精品视频| 日本在线不卡一区| 亚洲国产精品一区二区久久恐怖片 | 天涯成人国产亚洲精品一区av| 国产精品麻豆一区二区| 国产日产欧产精品推荐色 | 91精品黄色片免费大全| 欧美在线免费观看亚洲| 91免费观看国产| 99国产精品久久久久久久久久久 | 99热精品一区二区| 成人一区二区视频| 国产精品亚洲成人| 国产成人一区在线| 国产精品羞羞答答xxdd| 国产精品影视网| 国产一区二区三区黄视频| 精品一区二区三区在线播放| 久久91精品国产91久久小草| 久久精品国产一区二区| 麻豆91小视频| 国产精品一线二线三线| 国产成人免费在线观看不卡| 国产99久久久精品| 暴力调教一区二区三区| 99精品视频在线免费观看| 99r国产精品| 欧美在线观看视频一区二区三区| 欧美影院精品一区| 在线综合视频播放| 日韩欧美不卡在线观看视频| 久久一夜天堂av一区二区三区| 久久久久久久电影| 欧美经典一区二区三区| 国产精品你懂的在线| 国产精品全国免费观看高清| 中文字幕高清一区| 一区在线观看视频| 亚洲欧美综合色| 亚洲丰满少妇videoshd| 亚洲成人高清在线| 激情另类小说区图片区视频区| 麻豆91在线看| 不卡一区二区中文字幕| 91黄色免费版| 日韩欧美一区电影| 久久久91精品国产一区二区精品 | 青青草成人在线观看| 蜜桃视频一区二区三区在线观看| 国产精品1区二区.| 成人一区二区三区| 欧美日韩精品一区二区天天拍小说| 欧美在线一区二区三区| 精品99999| 国产精品美女久久久久高潮| 亚洲sss视频在线视频| 日韩电影在线免费观看| 成人丝袜高跟foot| 色综合久久中文字幕综合网| 日韩欧美另类在线| 中文字幕乱码久久午夜不卡 | 精品免费国产二区三区| 欧美国产欧美综合| 亚洲成a人在线观看| 韩国毛片一区二区三区| 日本韩国欧美一区二区三区| 欧美精品久久久久久久多人混战| 久久欧美中文字幕| 中文字幕五月欧美| 奇米在线7777在线精品| 国产成人在线色| 欧美三级欧美一级| 久久日韩精品一区二区五区| 尤物视频一区二区| 麻豆久久一区二区| 91国产成人在线| 欧美电影精品一区二区 | 麻豆国产欧美日韩综合精品二区| 成人激情黄色小说| 欧美一区永久视频免费观看| 亚洲私人影院在线观看| 久久 天天综合| 欧美日韩一区二区三区高清 | av影院午夜一区| 色诱视频网站一区| 久久久久国产免费免费| 国产精品电影院| 国产精品一区一区| 欧美日韩一区成人| 亚洲欧美日韩国产综合| 日本特黄久久久高潮| 欧美日韩在线电影| 久久婷婷久久一区二区三区| 免费av网站大全久久| 成人av在线看| 精品国内片67194| 亚洲一区二区三区国产| 成人午夜视频在线| 欧美精品一区二区三区蜜臀| 久久超级碰视频| 欧美午夜精品久久久久久孕妇| **性色生活片久久毛片| 黑人精品欧美一区二区蜜桃| 欧美大白屁股肥臀xxxxxx| 亚洲国产日韩av| 在线免费亚洲电影| 综合久久给合久久狠狠狠97色| 不卡av免费在线观看| 亚洲一区二区三区四区的| 日本福利一区二区| 风间由美一区二区av101 | 欧美xxxxx牲另类人与| 亚洲成人免费看| 这里只有精品电影| 国产中文字幕精品| 久久久久久久久久看片| 国v精品久久久网| 国产欧美久久久精品影院| 国产成人综合精品三级| 欧美成人aa大片| 成人网男人的天堂| 在线看日韩精品电影| 欧美国产精品一区二区| 天堂精品中文字幕在线| 亚洲欧洲国产日本综合| eeuss鲁片一区二区三区在线观看| 久久婷婷一区二区三区| 国产成人免费在线观看| 久久久久99精品一区| 99久久国产综合色|国产精品| 欧美激情一区三区| 91亚洲国产成人精品一区二区三 | 成人免费毛片片v| 国产精品进线69影院| 99riav一区二区三区| 亚洲成人tv网| 欧美日韩国产经典色站一区二区三区 | 欧美日韩精品系列| 亚洲成人精品一区| 精品国产露脸精彩对白| 日韩和欧美一区二区三区| 欧美精品一区在线观看| 日韩国产欧美在线视频| 亚洲国产精品精华液2区45| 91色在线porny| 亚洲成av人在线观看| 精品捆绑美女sm三区| 国产麻豆精品theporn| 亚洲天堂精品视频| 欧美日韩国产在线播放网站| 久久99久久久久久久久久久| 久久婷婷国产综合精品青草| 91搞黄在线观看| 日韩av在线发布| 国产精品久久久99| 精品视频1区2区| 久久不见久久见中文字幕免费| 久久久久久9999| 欧美无砖砖区免费| 国产在线播放一区| 亚洲色图一区二区| 精品欧美乱码久久久久久 | 亚洲国产视频在线| 欧美午夜免费电影| 国产成人精品综合在线观看 | 美国十次综合导航| 久久青草欧美一区二区三区| 欧美专区在线观看一区| 人人狠狠综合久久亚洲| 亚洲欧美偷拍卡通变态| 91蝌蚪porny| 国产精品一区二区久久精品爱涩 | 久久久国产一区二区三区四区小说| 一本色道久久综合亚洲精品按摩| 视频一区二区国产| 国产精品乱人伦中文| 欧美一区午夜视频在线观看| 91免费国产在线观看|