久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實(shí)戰(zhàn)洞察。

控制臺(tái)貪吃蛇從能跑到能玩:環(huán)形數(shù)組、狀態(tài)機(jī)與定點(diǎn)重繪實(shí)戰(zhàn)

控制臺(tái)貪吃蛇從能跑到能玩:環(huán)形數(shù)組、狀態(tài)機(jī)與定點(diǎn)重繪實(shí)戰(zhàn) 上一篇文章我們把控制臺(tái)貪吃蛇最基礎(chǔ)的版本跑通了蛇能動(dòng)、食物能刷、撞墻能結(jié)束。但那個(gè)版本距離“一個(gè)能玩的游戲”還差得遠(yuǎn)。如果你真把它拿給朋友試玩多半會(huì)被吐槽三件事按鍵卡頓、畫面閃爍、蛇稍微一長就找不著頭在哪。這篇就接著上一篇往下寫目標(biāo)很實(shí)在把控制臺(tái)貪吃蛇從“能跑”升級到“能玩”順便把代碼結(jié)構(gòu)理順讓后面再加功能不會(huì)越改越亂。文中代碼我用C/C混合風(fēng)格寫Windows控制臺(tái)環(huán)境可以直接用拿到Linux下把conio.h相關(guān)部分換成termios也能跑通。1. 從第一版到第二版這次改造的核心思路1.1 第一版留下的三個(gè)坑第一版貪吃蛇的代碼結(jié)構(gòu)估計(jì)寫過的人都差不多一個(gè)while(true)主循環(huán)循環(huán)里讀鍵盤、更新蛇頭坐標(biāo)、用system(cls)清屏再重新畫整個(gè)地圖。優(yōu)點(diǎn)是邏輯直白兩三屏代碼就能把“蛇會(huì)動(dòng)、能吃食物、會(huì)撞墻”講完作為第一篇的收尾綽綽有余。但如果你照著那個(gè)版本繼續(xù)加功能很快會(huì)碰到三堵墻。第一堵墻是畫面閃爍。system(cls)每次調(diào)用都會(huì)把整個(gè)控制臺(tái)緩沖區(qū)清掉然后你再重新輸出幾十上百個(gè)字符。操作一多光標(biāo)來回跳動(dòng)屏幕上就像按了頻閃燈一樣。蛇短的時(shí)候還好蛇身長到二三十節(jié)每一幀要重繪太多字符閃爍感會(huì)明顯到讓人不想玩。第二堵墻是速度控制不準(zhǔn)。第一版最常用Sleep(interval)控制每一幀的間隔但這個(gè)寫法有個(gè)隱藏問題Sleep只保證“至少等這么多毫秒”它不計(jì)入游戲邏輯本身的耗時(shí)。你移動(dòng)蛇、繪制畫面、讀取按鍵都要花時(shí)間把這些時(shí)間加上去實(shí)際每幀間隔會(huì)比設(shè)定的interval長而且長短不穩(wěn)定。結(jié)果就是蛇的速度忽快忽慢吃食物加速的邏輯也沒法做準(zhǔn)。第三堵墻是數(shù)據(jù)結(jié)構(gòu)太脆弱。很多人習(xí)慣用std::vector存蛇身每次移動(dòng)先insert新頭再pop_back刪尾巴。功能上沒問題但所有邏輯全堆在主循環(huán)里代碼長了之后哪里動(dòng)了蛇身、哪里改了狀態(tài)根本理不清。第二篇我不想急著上多復(fù)雜的算法先把這些問題解決掉后面寫計(jì)分、菜單、難度才會(huì)輕松。1.2 第二版的目標(biāo)與功能清單這次改造我給自己列了五條硬性目標(biāo)蛇身用固定數(shù)組加環(huán)形隊(duì)列思想來維護(hù)徹底擺脫頻繁的內(nèi)存操作放棄system(cls)改成光標(biāo)定位加定點(diǎn)重繪消滅閃爍引入固定時(shí)間戳計(jì)時(shí)替代Sleep讓速度控制可預(yù)期加入菜單、暫停、結(jié)束、再來一局用狀態(tài)機(jī)管理游戲流程增加計(jì)分和難度遞進(jìn)讓游戲有“越玩越難”的反饋感。這五條做完這個(gè)項(xiàng)目就不再是“教學(xué)Demo”了它更像一個(gè)可以拿來消遣、可以繼續(xù)擴(kuò)展的小成品。下面我按模塊拆開講每段都會(huì)給出關(guān)鍵代碼和踩坑說明。2. 蛇身數(shù)據(jù)結(jié)構(gòu)環(huán)形數(shù)組與隊(duì)列思想2.1 為什么蛇的移動(dòng)本質(zhì)上是個(gè)隊(duì)列貪吃蛇每走一步做的事情可以拆成兩步看先算出新蛇頭要去的位置如果新位置不是食物就把尾巴那一節(jié)刪掉。這正好符合隊(duì)列“頭進(jìn)尾出”的模型。用std::deque當(dāng)然能做但控制臺(tái)項(xiàng)目里我更推薦用定長數(shù)組加head/tail兩個(gè)下標(biāo)來模擬理由有兩個(gè)第一你不需要引入STL容器純C環(huán)境也能跑方便理解底層原理第二環(huán)形數(shù)組的訪問是O(1)的畫蛇身也只需要從尾巴遍歷到頭部代碼非常直觀。先定義一下蛇的結(jié)構(gòu)體const int MAX_BODY 500; // 地圖最多能容納的蛇身節(jié)數(shù) struct Snake { int x[MAX_BODY]; int y[MAX_BODY]; int head; // 蛇頭所在數(shù)組下標(biāo) int tail; // 蛇尾所在數(shù)組下標(biāo) int len; // 當(dāng)前蛇身長度 };初始化時(shí)我們讓蛇頭朝右從(startX, startY)開始往左擺兩節(jié)身體。這里有個(gè)容易繞暈的細(xì)節(jié)環(huán)形數(shù)組的“頭”和“尾”不是固定在0號下標(biāo)而是靠head和tail兩個(gè)游標(biāo)動(dòng)態(tài)移動(dòng)。void initSnake(Snake s, int startX, int startY) { // 蛇身三節(jié)從右往左排 s.x[0] startX 2; s.y[0] startY; // 最后一節(jié)尾巴 s.x[1] startX 1; s.y[1] startY; s.x[2] startX; s.y[2] startY; // 蛇頭 s.tail 0; s.head 2; s.len 3; }2.2 入隊(duì)與出隊(duì)新頭進(jìn)尾巴出移動(dòng)時(shí)新蛇頭應(yīng)該寫到緊挨著當(dāng)前head的下一個(gè)位置也就是(head 1) % MAX_BODY。取模的意思是數(shù)組下標(biāo)到末尾時(shí)就回繞到開頭形成一個(gè)環(huán)。這里還要區(qū)分兩種情況吃到食物時(shí)蛇身要增長尾巴不動(dòng)沒吃到食物時(shí)尾巴跟著前進(jìn)一格保持長度不變。void moveSnake(Snake s, int newX, int newY, bool grow) { int newHead (s.head 1) % MAX_BODY; s.x[newHead] newX; s.y[newHead] newY; s.head newHead; if (!grow) { // 沒吃東西尾巴往前挪一格 s.tail (s.tail 1) % MAX_BODY; } else { s.len; } }這段代碼是整條游戲的“發(fā)動(dòng)機(jī)”邏輯很簡單但寫的時(shí)候必須注意順序。我之前犯過把tail更新放在head更新之前的錯(cuò)結(jié)果新頭寫入還沒完成尾巴先動(dòng)了下一次畫蛇身時(shí)坐標(biāo)就對不上畫面直接亂掉。2.3 畫蛇身從尾巴遍歷到頭部繪制蛇身時(shí)從tail開始依次訪問(tail 1) % MAX_BODY、(tail 2) % MAX_BODY……直到遍歷完len個(gè)節(jié)點(diǎn)。每次取模都保證下標(biāo)不會(huì)越界。void drawSnake(const Snake s) { int idx s.tail; for (int i 0; i s.len; i) { gotoxy(s.x[idx], s.y[idx]); SetConsoleTextAttribute(handle, 10); // 綠色 std::cout ■; idx (idx 1) % MAX_BODY; } }注意用■這類全角字符時(shí)一個(gè)字符占兩個(gè)字節(jié)控制臺(tái)光標(biāo)定位必須落在正確坐標(biāo)上否則畫出來的蛇身會(huì)出現(xiàn)錯(cuò)位。建議把地圖邊界和蛇身都按“字符數(shù)”來算坐標(biāo)不要和字節(jié)數(shù)混淆。2.4 判斷蛇頭是否撞到自己自碰檢測是貪吃蛇最容易寫錯(cuò)的地方。直覺做法是遍歷整條蛇身看新頭坐標(biāo)是否和某一節(jié)重疊。但有一個(gè)特殊情況如果新頭正好落在尾巴即將移開的位置那不算撞到自己因?yàn)檫@一節(jié)馬上要被出隊(duì)了。所以正確的遍歷范圍是“除了尾巴以外的所有節(jié)點(diǎn)”或者換個(gè)思路先判斷沒吃到食物時(shí)尾巴會(huì)先移走再檢查新頭是否與剩余身體重疊。bool hitSelf(const Snake s, int nx, int ny, bool grow) { int count grow ? s.len : s.len - 1; int idx s.tail; for (int i 0; i count; i) { if (s.x[idx] nx s.y[idx] ny) { return true; } idx (idx 1) % MAX_BODY; } return false; }這個(gè)“是否排除尾巴”的細(xì)節(jié)很多人在第一次寫時(shí)都會(huì)漏。如果你發(fā)現(xiàn)蛇總是莫名其妙死在“明明尾巴要離開的位置”多半就是這里的問題。3. 輸入控制與渲染優(yōu)化手感提升的關(guān)鍵3.1 方向鍵的讀取兩個(gè)字節(jié)的坑Windows控制臺(tái)下方向鍵不是普通字符按下后會(huì)返回兩個(gè)字節(jié)第一個(gè)字節(jié)是224或0第二個(gè)才是真正表示方向的掃描碼。只用_getch()讀一次會(huì)拿到224直接判斷方向必然失敗。我見過不少人卡在這個(gè)問題上一兩個(gè)小時(shí)其實(shí)處理起來很簡單int readDirection() { if (!_kbhit()) return -1; int key _getch(); if (key 224 || key 0) { key _getch(); // 再讀一次拿到真實(shí)按鍵 } switch (key) { case 72: return DIR_UP; case 80: return DIR_DOWN; case 75: return DIR_LEFT; case 77: return DIR_RIGHT; default: return -1; } }如果你在Linux下做移植方向鍵序列是\x1B[A這樣的轉(zhuǎn)義序列也是三個(gè)字節(jié)原理相通。3.2 防反轉(zhuǎn)用異或判斷正反方向貪吃蛇最經(jīng)典的限制不能直接掉頭。當(dāng)前正在向右走的時(shí)候玩家按左鍵應(yīng)該被忽略。如果不用任何技巧你得寫四個(gè)if判斷然后又臭又長。這里有個(gè)很聰明的位運(yùn)算方法。給方向編號enum Direction { DIR_UP 0, // 上 DIR_DOWN 1, // 下 DIR_LEFT 2, // 左 DIR_RIGHT 3 // 右 };巧合的是0 ^ 1 11 ^ 1 02 ^ 1 33 ^ 1 2。也就是說上下相對、左右相對恰好可以用dir ^ 1表示“反方向”。判斷時(shí)可以這么寫int newDir readDirection(); if (newDir ! -1 newDir ! (curDir ^ 1)) { curDir newDir; }這個(gè)寫法不管當(dāng)前方向是哪個(gè)只要新方向是當(dāng)前方向的反向就一定等于curDir ^ 1直接忽略即可。代碼整潔邏輯也不容易出錯(cuò)。3.3 擺脫system(cls)光標(biāo)定位與定點(diǎn)重繪第二版最重要的一步是把整屏重繪改成局點(diǎn)更新。既然蛇每次移動(dòng)只影響三個(gè)位置新蛇頭、舊蛇尾、可能變化的新食物那理論上每幀只需要在這些位置上做擦除和重畫。Windows下定位光標(biāo)用SetConsoleCursorPositionvoid gotoxy(int x, int y) { COORD pos; pos.X x; pos.Y y; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos); }再配合一個(gè)隱藏光標(biāo)函數(shù)視覺效果會(huì)干凈很多void hideCursor() { CONSOLE_CURSOR_INFO cci; GetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), cci); cci.bVisible FALSE; SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), cci); }有了這兩個(gè)函數(shù)移動(dòng)蛇的時(shí)候就可以精準(zhǔn)操作// 每次update之后 // 1. 畫新蛇頭 gotoxy(newX, newY); SetConsoleTextAttribute(handle, 10); std::cout ■; // 2. 如果沒吃到食物擦掉舊尾巴 if (!ate) { gotoxy(oldTailX, oldTailY); std::cout ; // 兩個(gè)空格相當(dāng)于擦除 } // 3. 如果吃到食物畫新食物位置變了 if (ate) { drawFood(); }這種方法下畫面不再全書刷新閃爍幾乎消失蛇長到50節(jié)也不會(huì)有視覺卡頓。3.4 固定時(shí)間戳讓速度控制真正可控用Sleep(interval)控制幀率的最大問題是它只負(fù)責(zé)“睡”不負(fù)責(zé)“校準(zhǔn)”。假設(shè)每幀游戲邏輯要跑5毫秒你設(shè)置Sleep(100)實(shí)際每幀間隔就是105毫秒誤差會(huì)累積蛇會(huì)越走越快或者忽快忽慢。解決辦法是記錄上一次更新的時(shí)間戳每次循環(huán)檢查當(dāng)前時(shí)間是否已經(jīng)超過固定間隔DWORD lastTick GetTickCount(); int interval 150; // 毫秒 while (running) { DWORD now GetTickCount(); if (now - lastTick interval) { updateGame(); lastTick now; } render(); // 每幀都渲染保證按鍵響應(yīng)及時(shí) }注意render()不能放在if塊里。因?yàn)榘存I響應(yīng)需要在空閑時(shí)間也能被處理如果把渲染也卡進(jìn)定時(shí)邏輯按一下方向鍵可能要等一個(gè)間隔周期才有反應(yīng)手感非常差。暫停功能實(shí)現(xiàn)時(shí)記得做一件事恢復(fù)暫停的瞬間把lastTick重新賦值為GetTickCount()。否則暫停期間流逝的時(shí)間會(huì)被算進(jìn)去一恢復(fù)游戲蛇就往前猛跳一大步。4. 游戲狀態(tài)機(jī)與完整項(xiàng)目骨架4.1 為什么要把游戲狀態(tài)拆開第一版把所有邏輯寫在一個(gè)循環(huán)里菜單、暫停、結(jié)束全都塞進(jìn)去會(huì)讓代碼變成一團(tuán)亂麻。更好的做法是抽象出一個(gè)“狀態(tài)機(jī)”讓程序知道自己當(dāng)前在哪個(gè)界面并根據(jù)狀態(tài)決定該執(zhí)行哪些邏輯。定義狀態(tài)enum GameState { STATE_MENU 0, // 主菜單 STATE_RUN, // 游戲中 STATE_PAUSE, // 暫停 STATE_OVER // 游戲結(jié)束 };主循環(huán)變成這樣int main() { initGame(); while (true) { switch (state) { case STATE_MENU: handleMenu(); break; case STATE_RUN: handleRun(); break; case STATE_PAUSE: handlePause(); break; case STATE_OVER: handleOver(); break; } } return 0; }每次只處理當(dāng)前狀態(tài)下的按鍵和繪制邏輯邊界非常清晰。菜單里按空格進(jìn)入游戲游戲中按空格暫停暫停中按空格恢復(fù)結(jié)束后按R重新開始。狀態(tài)切換通過簡單的賦值實(shí)現(xiàn)。4.2 菜單、暫停、結(jié)束三個(gè)輔助界面菜單界面可以畫一個(gè)簡單的標(biāo)題和選項(xiàng)void drawMenu() { gotoxy(MAP_WIDTH / 2 - 5, MAP_HEIGHT / 2 - 2); std::cout 貪吃蛇 v2.0; gotoxy(MAP_WIDTH / 2 - 8, MAP_HEIGHT / 2); std::cout 1. 簡單 2. 普通 3. 困難; gotoxy(MAP_WIDTH / 2 - 6, MAP_HEIGHT / 2 1); std::cout 空格鍵開始; }這里順便把難度選擇做了按下1、2、3分別把interval設(shè)為200、150、100對應(yīng)慢、中、快三檔。菜單事件處理放在handleMenu()里讀取按鍵并修改全局狀態(tài)。暫停界面不用動(dòng)地圖只需要在畫面中央顯示“暫停中”幾個(gè)字然后等待空格鍵。注意暫停時(shí)必須保留當(dāng)前的地圖畫面不能清除否則玩家恢復(fù)后看不到蛇在哪里。結(jié)束界面可以顯示最終得分并提示按R重新開始。這里有兩個(gè)細(xì)節(jié)一個(gè)是重新開始前要重新初始化所有全局變量另一個(gè)是必須把lastTick也重置否則新游戲第一幀會(huì)立刻觸發(fā)一次更新。4.3 計(jì)分與難度遞進(jìn)計(jì)分規(guī)則很簡單每吃一個(gè)食物加10分。在右側(cè)畫一個(gè)記分板用剛才的gotoxy精確繪制。這里有個(gè)容易忽略的地方記分板區(qū)域和游戲地圖區(qū)域最好分開管理比如地圖占左邊60列記分板占右邊20列避免坐標(biāo)重疊。難度遞進(jìn)我用“分?jǐn)?shù)每增加50分移動(dòng)間隔減少10毫秒”的規(guī)則同時(shí)設(shè)置一個(gè)下限防止蛇快得完全沒法操作if (score 0 score % 50 0 interval 60) { interval - 10; }實(shí)際體驗(yàn)下來60毫秒是普通玩家能接受的極限再快就需要用到“預(yù)測下一個(gè)按鍵”的技巧了。5. 實(shí)操過程搭一個(gè)能玩的控制臺(tái)版本5.1 關(guān)鍵變量和初始化流程為了保證所有函數(shù)都能訪問到需要的數(shù)據(jù)我建議用全局變量組織核心數(shù)據(jù)數(shù)量不多可控Snake snake; int foodX, foodY; int score; int curDir; int interval; GameState state; DWORD lastTick; HANDLE handle;初始化時(shí)依次做獲取控制臺(tái)句柄、隱藏光標(biāo)、初始化蛇的位置、隨機(jī)生成第一個(gè)食物、設(shè)置初始狀態(tài)為菜單。隨機(jī)函數(shù)記得用srand((unsigned)time(NULL))給種子否則每次運(yùn)行食物位置都一樣。5.2 游戲循環(huán)的update實(shí)現(xiàn)handleRun()是核心函數(shù)里面做三件事讀方向、判斷是否該更新、更新畫面。void handleRun() { int newDir readDirection(); if (newDir ! -1 newDir ! (curDir ^ 1)) { curDir newDir; } DWORD now GetTickCount(); if (now - lastTick (DWORD)interval) { return; // 時(shí)間沒到只處理按鍵 } lastTick now; // 計(jì)算新頭位置 int dx[4] {0, 0, -1, 1}; int dy[4] {-1, 1, 0, 0}; int nx snake.x[snake.head] dx[curDir]; int ny snake.y[snake.head] dy[curDir]; // 撞墻檢測 if (nx 0 || nx MAP_WIDTH || ny 0 || ny MAP_HEIGHT) { state STATE_OVER; drawOver(); return; } bool eat (nx foodX ny foodY); // 自碰檢測 if (hitSelf(snake, nx, ny, eat)) { state STATE_OVER; drawOver(); return; } // 記錄舊尾巴坐標(biāo)用于擦除 int oldTailX snake.x[snake.tail]; int oldTailY snake.y[snake.tail]; // 移動(dòng)蛇身 moveSnake(snake, nx, ny, eat); // 繪制新蛇頭 gotoxy(nx, ny); SetConsoleTextAttribute(handle, 10); std::cout ■; if (eat) { score 10; updateScoreBoard(); // 食物被吃了重新生成 spawnFood(); drawFood(); // 難度遞進(jìn) if (score % 50 0 interval 60) { interval - 10; } } else { // 沒吃到食物擦除尾巴 gotoxy(oldTailX, oldTailY); std::cout ; } }這段代碼基本就是第二版的核心了順序上有個(gè)關(guān)鍵點(diǎn)必須先判斷碰撞再執(zhí)行移動(dòng)。如果把移動(dòng)放在檢測之前蛇頭已經(jīng)撞墻了你還要再倒回去處理邏輯會(huì)變得很別扭。5.3 食物生成的安全策略最簡單的食物生成方式是循環(huán)隨機(jī)do { foodX rand() % MAP_WIDTH; foodY rand() % MAP_HEIGHT; } while (isBody(foodX, foodY));這在小地圖、蛇身短的時(shí)候沒問題但當(dāng)蛇身占滿大半地圖時(shí)隨機(jī)位置很可能反復(fù)落在蛇身上碰撞檢測次數(shù)急劇上升極端情況下程序會(huì)卡到看起來像死循環(huán)。更穩(wěn)妥的寫法是先把所有空地收集起來再從空地里隨機(jī)挑一個(gè)。這里給個(gè)實(shí)現(xiàn)void spawnFood() { int freeCells 0; for (int y 0; y MAP_HEIGHT; y) { for (int x 0; x MAP_WIDTH; x) { if (!isBody(x, y)) freeCells; } } if (freeCells 0) { // 地圖被占滿游戲勝利 state STATE_OVER; return; } int target rand() % freeCells; for (int y 0; y MAP_HEIGHT; y) { for (int x 0; x MAP_WIDTH; x) { if (!isBody(x, y)) { if (target 0) { foodX x; foodY y; return; } target--; } } } }這個(gè)函數(shù)的時(shí)間復(fù)雜度是O(地圖大小)即使蛇身很長也穩(wěn)定。游戲快通關(guān)時(shí)這個(gè)函數(shù)能保證食物一定生成在可到達(dá)的位置。5.4 完整的繪制函數(shù)組織把繪制代碼統(tǒng)一封裝能有效避免零散輸出。我通常按層次組織四個(gè)繪制函數(shù)drawBorder()只畫一次放在初始化階段之后不清除drawSnake()更新蛇時(shí)調(diào)用畫整個(gè)蛇身適合初始化以及重置后重繪drawFood()畫當(dāng)前位置的食物drawUI()在右側(cè)畫分?jǐn)?shù)、難度、操作提示。初始化時(shí)調(diào)用一次全部繪制之后每幀只做局部更新這樣代碼清晰也不會(huì)因?yàn)橥嬆硞€(gè)元素導(dǎo)致畫面殘缺。6. 常見問題與調(diào)試心得6.1 蛇頭畫出來了但身體斷節(jié)或者重疊這個(gè)問題十有八九出在環(huán)形數(shù)組的取模和head/tail更新順序上。記住一個(gè)口訣先寫新頭到(head1)%MAX_BODY再移動(dòng)head游標(biāo)最后才根據(jù)是否吃到食物去動(dòng)tail。如果先動(dòng)了tail或者h(yuǎn)ead下一次繪制時(shí)遍歷的起點(diǎn)就會(huì)錯(cuò)亂。排查時(shí)可以打印head、tail和len三個(gè)值蛇動(dòng)幾幀后再對比數(shù)組里每個(gè)坐標(biāo)很快就能定位是哪個(gè)環(huán)節(jié)出了問題。6.2 方向鍵沒反應(yīng)或者按一次走兩步方向鍵沒反應(yīng)優(yōu)先檢查有沒有處理224/0這個(gè)前導(dǎo)字節(jié)。只讀一次_getch()拿到的根本不是一個(gè)有效方向鍵。按一次走兩步多半是按鍵的“重復(fù)觸發(fā)”。如果你在循環(huán)里每次都調(diào)用readDirection()鍵盤按住時(shí)系統(tǒng)會(huì)連續(xù)產(chǎn)生重復(fù)按鍵事件。解決方法是維護(hù)一個(gè)“本幀是否已處理過方向”的標(biāo)志每幀只允許修改一次方向或者干脆用“方向緩沖”只在方向鍵第一次生效。6.3 速度忽快忽慢前面提過別用Sleep做速度控制要用時(shí)間戳判斷。如果你已經(jīng)用了時(shí)間戳還是忽快忽慢注意檢查render()里有沒有執(zhí)行耗時(shí)大的操作比如每次渲染都遍歷整個(gè)地圖或者調(diào)用SetConsoleTextAttribute太多。優(yōu)化思路是把顏色設(shè)置也緩存下來只在變化時(shí)才調(diào)用。6.4 蛇吃到自己的身體竟然沒死最可能的原因是自碰檢測時(shí)忘了考慮“尾巴即將移走”的情況。當(dāng)蛇沒有吃到食物時(shí)新的蛇頭可以合法地移動(dòng)到當(dāng)前尾巴的位置因?yàn)槟且粠舶蜁?huì)立刻移開。如果檢測函數(shù)把尾巴計(jì)入身體游戲會(huì)在本該活著的時(shí)候判死。反過來如果吃到食物時(shí)尾巴不移走你確實(shí)應(yīng)該判死。所以檢測函數(shù)的第三個(gè)參數(shù)grow必須精確傳達(dá)“這一幀蛇是否增長”的狀態(tài)兩個(gè)分支處理方式不同。6.5 我給新手的排查技巧單步調(diào)試模式調(diào)試游戲邏輯比調(diào)試普通程序難點(diǎn)在于畫面一直在變。我的做法是加一個(gè)隱藏的“單步模式”按P鍵進(jìn)入暫停按N鍵手動(dòng)執(zhí)行一次update然后打印出蛇頭坐標(biāo)、方向、長度和下一幀新頭位置。if (key n state STATE_PAUSE) { updateGame(); drawGame(); }這個(gè)功能在排查“為什么這里撞了”“為什么那里沒撞”時(shí)極其有效你可以一幀一幀地觀察蛇的狀態(tài)變化。等所有邏輯都調(diào)通了再把這個(gè)調(diào)試分支注釋掉。在我看來控制臺(tái)貪吃蛇這個(gè)項(xiàng)目寫到這里已經(jīng)不是“能不能跑”的問題而是“好不好玩”的問題。環(huán)形數(shù)組把蛇身管理變得穩(wěn)定定點(diǎn)重繪消滅了閃爍固定時(shí)間戳讓加速減速都變得可控狀態(tài)機(jī)又給了你擴(kuò)展菜單和暫停的底氣。這一套思維不止適用于貪吃蛇你隨便拿一個(gè)控制臺(tái)小游戲套上“狀態(tài)機(jī)定時(shí)更新局部重繪”這個(gè)框架手感都會(huì)比瞎寫一氣的版本強(qiáng)很多。后面如果再想加?xùn)|西最高分存檔、蛇的AI自動(dòng)尋路、雙人模式都只是在這個(gè)骨架上面繼續(xù)長肌肉了。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
人人操人人肉久久精品| 久久精视频美日韩在线视频| 色噜噜综合网| 欧美玖玖爱免费玖玖| 香蕉99秘 一区精品蜜桃臀| 色操逼网| 中文字幕人乱码中文字的预防方法| 大香蕉懂9| 久久男女激情视频网站| 亚洲成人AB| 草草影院日本第一页| 久久久不能久久久久| 97操97干| 日韩三级一区| 男人天堂欧美| 一本大道青青| 六月婷婷综合| 日韩97| 猛交交| 中国一级αV| 一起草av| 日韩欧美性吧婷婷乱伦大香蕉| 五月天婷婷激情| 夜夜久久久| 国产无码一二三区| 亚洲欧美首页| 亚洲 欧美 综合 91| h无码动漫在线观看| 中文字幕女同在线| 婷婷色综合| 久操免费视频| 天天综合欧美综合| 91九色丰满高潮| 色色色99| 国产乱伦亚洲| 亚洲欧美骚| 91人妻丝袜无码| 亚洲**2021在线观看| 尤物AV免费网站| 婷婷久草| 中文激情网| 啊啊啊好舒服视频| 欧美日韩人妻少妇 一区二区三区| 最新中文字幕精品在线| 麻豆久久一区二区三区| 亚洲影视第一页| 日日夜夜骚| 五月天婷婷综合| 私色综合网| 国产精品亚洲一级av第二区| 亚洲97在线观看| 亚洲综合图片在线| 玖玖综合色| 色色丁香| 日本久久精品| 色翁荡息又大又硬又粗又爽| 国产精品久久久啊| 老熟乱一区二区三区四区| 后入式视频国产自| 熟女久久久| 91少妇香蕉久久精品| 91 手机在线播放 绯色| 神马精品视频| 成人AV素股で擦久久| 乱精品一区字幕二区| 欧美淫乱视频| 啊啊啊 在线| 无码九九九九| 欧美综合网| 91久久青青草原精品| 色香欲综合| 97K超碰在线| 天天操女人| 福利大香蕉| 国产日产欧产美韩系列麻豆免费| 五月天激情综合网| 日本护士高潮| 中文字幕黄片在线| 中文字幕1区2区| 99re6国产精品99re在线| 影音先锋日本乱伦| 久久超碰97| 亚洲资源网| 自拍视频一区在线观看| 久操精品| 四虎影视精品| 久久春色| 欧美色偷偷| 亚洲中文一区二区三区| 亚洲人成网站7777| 国产99999| 啊啊啊轻点在线观看| 国产超碰在线一区| 啊啊啊好湿久久| 色婷婷五月天| 五月天偷拍| 亚洲强奸乱伦影视网| a级免费在线观看| 97操碰| 男人的天堂日本东京热| 无码国产精品96久久久久孕妇| 欧美在线中M| 97色伦欧美| 免费av大片| 日本操色导航| 插穴性爱视频在线观看| 国产成人免费观看在线视频| AV和黑人在线播放| WWW啪啪的com| 亚洲中文国际强奸字幕| 人人摸人人添人人操| 一级人妻性爱视频| 亚洲无线码欧洲精品区别| av中亚| 五月天人妻综合| 国产精品3| 蜜臀av网址| 校园春色宗合网| 久操在97| 国产第二页| 久久久婷婷| 亚州久久9| 自拍视频大全亚洲专媒视频/一区二区三区| 日韩有码免费视频| 欧美视频第二页| 欧美A√综合网| 久久久久久久久久久久久9999| 男人天堂2012| 婷婷久月| 97日视频| 久久久免费高清中文视频| 久久偷偷色综合蜜桃| 操91| 另类专区加勒比| 欧美综合亚洲| 97亚洲精品| 久久成年片色大黄全免费网站| 97超碰色| 亚洲1区2区三区高清中文字幕| 3d成人精品一区二区| 精品毛片av一区二区| 久久久久久亚洲中文| 国产日韩欧美中文在线播放| 亚欧无码在线| 自拍偷拍 日韩无码| 久久av成人无码免费| 人人摸人人摸人人干| 岛国AB视频| 在线观看国产黄色| 国产免费永久精品无码| 嗯嗯嗯好爽| 啊嗯好大视频在线观看| 另类视频在线| 96国产精品| 亚洲综合欧美| 久久激情综合| 夜夜嗨绯色| 狠操91,com| JuliaAnnXXX888| 久草精品国产99| 亚洲av综合色区无码一| 亚洲国产综合久久天堂| 熟女露脸激情自拍视频| 久久久久久久9| 另类小说综合网| 五月天玖玖资源站| 欧美 亚洲 制服 精品| 无码视频一区二区| 我想要 啊 啊 啊| 国产精品探花色| 欧美一级黄片免费播放| 九九色图| ai欧美亚洲小说| 夜夜欧美 | 国语人妻精彩刺激| 欧美综合骚| 国产黄色小视频网站| 色97欧美| 玖玖综合视频| 日本精品国产视频| 人人操人人操草草| 亚洲精品天天影视综合网| 骚女高跟AV在线| 久久久久九九九九| 97精品综合久久| 色噜噜人妻丝袜AV资源| 人人搞人人插人人操| 亚洲高清无码AAA久久久精品| 精品夜夜澡人妻无码| 午夜精品久久久久久久99热影院| 96麻豆精品一区二区三区| 中文字幕精品日韩中文字幕| 色老汉色| 人人看人人爰人人操| 色五91| 欧美亚洲宗合色性图| 91在线欧美| 极品白嫩美女白浆成人福利在线看| 九九热超碰97亚洲最新香蕉 | 精品人妻免费观看| AV中文在线可看| 中文字幕二区| 91天堂色男人的天堂| 91五月天| 欧美日韩日产免费网站看| 亚洲天堂另类小说男人| 夜色91| 美女自卫慰黄网站免费| 一区二区三区男人的天堂| 美国aaaaa一级黄片| 天天综合有色网| 成年人网站在线免费观看| 天综合网| 天天干人人看综合| 久久色激情一区二区三区| 日韩三级av片| 久久婷婷五月天| 91精品导航| 高清国产av无码| 国产美女91| 婷婷久热| 综合久久97| 色老汉玖玖爱| 人人弄人人摸| 免费网站观看www在线观| 亚洲AV无码乱码| 98一区二区精品| 欧美 亚洲 第一页| 夜夜高潮夜夜爽| 欧美传媒| 天天操美美| 国产高清成人mv在线观看| 校园春色中文字幕AV| 欧美亚洲日本视频久久久 | 亚洲精品视频在线| 超碰2017| 欧美日韩精品国产91| 成人七区| 中国特猛少妇色xxx| 五月天伊人| 狠狠干91| 丝袜美腿校园春色| 人妻人人操| 91搡老女人老妇女老熟女歌词翻译| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 欧美 日韩 亚洲 春色| 精品9区| av日韩手机在线影视| 久久久精| 日韩中字av一区| 17c在线成人免费A片观看| 92大香蕉| 东北老女人的激情视频| 色情综合| 国产探花精品在线| 亚洲全色网| 国产天美传媒精品| 麻豆人妻精品一区二区| 69精品久久久久中文字幕| 青青操国产夫妻| 97色色,97综合| 激情久久久| 九月激情婷婷| 丁香九月婷婷| 国产久久天堂资源| 97亚洲国产| 看看小穴| 欧美色视频在线| 亚洲男人天堂手机版| 蜜桃久久久久久| 国产一区二区啪啪视频| 性videos欧美熟妇hdx| 三级色影综合网| 熟女网站最新| 久久午夜伦| 操逼不卡中文字幕| 亚洲无码偷拍| 天天色欧美| 东京热大香焦| 欧美在线55555| 91大胆欧美| 久久性爱城| 国产福利视频精品视频| 99热| 国产在线播放成人免费| 精精品人妻一区二区三区| 国产欧美成人精品| 亚州综合图片| 偷拍欧美激情| 干日本人少妇午夜寂寞影院| 日韩欧美操逼xxx| 女性91网站| 亚州高清av| 久久神马影院| 国产妇女精品视频青青草| 97视频网站在线观看| 色婷婷电影| 天美麻花大全视频| 99久久精品国产高潮| 久久黄片国产一区二区| 囯产精品久久久久久久久久梁医生 | www.天天干| 成人黑料社久久| 人妻一区二区三区视频| 欧洲综合无码| 操逼日批| 精品久久久久久中文| 久久精品国产亚洲妲己影视| 强被迫伦姧在线观看无码网站| 欧美 亚洲| 一本色道人妻久久| 亚洲高清欧美总合| 日本淫乱女一区二区三区视频| 欧美亚洲今日在线| 97视频在线视频| 久久久久国产精品人妻aⅴ天堂| 亚洲欧洲无码一区夜| 天天综合香 ld视频| 亚州乱码中文字幕综合久久久| 中文字幕在在线观看网站| 亚洲欧美精品91| 日本有码久久| 怡春苑东京热| 久偷拍欧美日韩三区| 久久久专区| 日韩欧美天堂| 亚洲小说视频| 91网九色蝌蚪操熟女| 久久免费少妇| 天天干天天燥| 国产亚洲日本精品在线| 久久伊人五月天| 亚洲影视综合网| 超碰人人妻| 久久手机视直播| 综合网久久| 欧美影音在线| 无人区高清电影免费观看一区二区三 www.qmcai2.com | 久久99午夜精品一区人妻| 熟妇操花| 天天干美少妇一区| 国产精品3| 亚洲欧美碰碰| 欧美色性爱| 人妻少妇久久久| 99少妇精品视频| 天天干天天日天天射黄色片| 清纯唯美综合亚洲| 午夜欧美精品久久久| 91精品人妻偷情| 中文字幕亚韩| 日韩人妻大香蕉| 亚州综合AⅤ| 999色欧美中文字幕| 超碰99在线| 亚洲无码国产精品久久| 亚洲成人免费在线| 久久久久亚洲精品| 九九九免费视频| 乳欲人妻办公室奶水| 亚洲天堂区| 91激情综合| 精品少妇999| 亚洲av综合色区无码一| 啊啊啊啊啊操我视频| 韩国毛片一区二区三区| 国产福利视频精品视频| 人人爱操| 啊啊啊啊好大好硬啊啊啊啊啊| 性色A∨91| 亚洲综合中文字幕有码| 玖玖蜜臀资源网| 夜夜欢天天干| 在线看片国产精品每日更新| 天堂精品小草| 97aiaiai| 老司机老司机午夜影院| 久久綜合很很很| 五月天婷婷社区| 亚洲最新中文字幕免费| 欧美日韩人人精品| 极品肉射| 丰满人妻-区二区三区免费| xxx0国产在线播放| 欧美狠狠鲁| 亚洲欧美另类小说| 五月婷婷丁香中文字幕| 精品无码一区二区人妻久久蜜桃| 99热免费| 亚洲怡春院| 国产熟女无套内射| 激情久久久| 久久99999| 91久久久亚洲| 97超级久久强资源| 男女国产精品| 激情四射五月天| 97在线播放| 特级丰满少妇一级AAAA爱毛片| 欧美日韩亚洲天堂网| 成人精品水蜜桃久久久久久久| 伊人黄色片| 东北女人被操| 欧美的性爱网站免费| 啊啊啊啊啊操我视频| 亚洲丝袜诱惑| 四虎AV无码| 青草综合| 九九九久千久久激情蜜桃在线看 | 国产AAAAAABBBBB| 国产suv精品一区二区四区999| 色妇综合网| 天天干,夜夜爽| 欧美综合色图片| 九九久久99| 久久国产精品熟女人妻| 欧美日韩*字幕一区| 熟女中出视频| 日本人妻伦在线中文字幕| 99精品热| 人人爱人人乐人人操| 三级片大波波| 性色av蜜臀av色欲aV| 四虎在线免费视频| 丁香五月性| 丰满人妻一区二区三区免费| 亚洲AV无码天美传媒一区| 色97欧美| 亚洲一区二区三区麻豆传媒| 性开放中文AV高清无码免费看| 亚洲色图伊人网| 亚洲成人av电影在线| 天天天堂影视日韩亚洲91| 美女被艹尤物视频| 国产传媒av天美传媒在线| 97亚洲一区| 一级片在线观看高清无码| 日韩精品影视| 久久久九97| 18禁看网站一区| 日韩综合97P| 天天综合91入口| 日本有码久久| 免费观看性欧美一级| 精品人妻一二三四区视频| 欧美一区二区三区日韩| 国产丝袜啪啪| 超碰国产精品无码| 国产精品不卡高清在线观看| 蜜臀久久久99久久久久 | 性色乱AV一区二区| 国产精品网址| 精品欧美乱码久| 一区二区蜜臀| 丁香九月婷婷| 色综合大香蕉| 亚洲影视综合网| 78精品在线| av天堂影视中文在字幕在线中文| 中文字幕成人乱码熟女精品国50| 无码视频一区二区| 成人日韩欧美| 黄片免费看的| 久久久久久久强迫| 99热在线只有精品| 91激情网| 欧美高潮在线| 91狠婷| 干干干天天| PMv在线观看| 上床啊啊啊| 久久精品高清无码一区| 日韩二三区| 五月丁香狠狠爱| 夜间福利片1000无码| 人妻9117c| 亚洲色图A| 欧美久久婷| 黑操B| 欧美一级久久久久久久大片动画 | 嗯嗯嗯啊啊啊操的我好爽| 人妻AV在线| 操逼逼福利视频| …亚洲黄色厕厕女女在线播…| 久久成人午夜狠狠| 激情四射五月天| 成人老鸭窝人人在线视频| 嗯嗯嗯好爽| 五月天激情小说网| 五月天激情网图片| 天天躁日日躁AAA片李宗瑞| 九九热久久99精品re| 日本羞羞的视频在线播放| 91综合熟女| 大香蕉中文201| 国产精品一区在线播放| 97操B| 91超碰在线播放| 91jk色拍| 日韩欧美丝袜诱惑| 美腿丝袜高跟网免费视频免费视频| 99r九九| 天天流夜夜操| 国产无码一二三区| 99日韩| 99e久久国产精品| 国产成人亚洲精品无码最新在线| 综合伊人网12色| 精品性爱| 日韩欧美成人性爱在线| 欧美1区二区三区公司 | 欧美中出1| AV污污污污| 欧美激情性爱视频网站| 91成人精品在线播放| 国产成人久久久精品免费AV| 久久婷婷五月综合| 日韩偷拍色图| 亚洲淫乱骚妇AV| 欧美大片天天看| 日韩精品国模| 久草午夜| 人人看人人爰人人操| 色呦呦呦在线观看视频| 超碰在线成人| 尤物av网站| 色嘟嘟人妻天堂网| 国内精品999| 国产精品suv一区| 国产成人主播| 91蜜臀人妻中文字幕在线| 久久春色| 97精品熟女少妇一区| 欧美成人性爱视频大全| 亚洲综合在线高清| 国产精品3| 久久久久久久9| 国内亚洲精彩视频在线| 久久人妻办公室视频| 欧美一二三区四五区| 中文日韩欧美熟| 日本精品五区| 中国探花熟女| 91成人在线| 天天亚洲| WWW黄片COM| 大香蕉伊人网WWWn0n| 人妻素股| 国产综合在线视频网站| 99在线精品视频| 熟妇高潮一区二| 另类图片综合| 国产一区二区三区精品观看啪| 久久久啊啊| 欧美综合天堂| 岛国黄色短视频| 97干在线看| 快播久久人人aV| 狼狼色丁香久久婷婷综合五月 | 高潮的A片激情扒开一区| 人妻中文在线| 任我爽在线视频免费观看| av三级电影在线播放| 熟女乱伦二区| 啊啊啊啊好大好硬啊啊啊啊啊 | 丝袜色综合| 夫妻AV网站| 国产极品美女高潮无套在线观看| 情色av电影| 欧美丝袜中文字幕07在线| 黄片免费久久久久久久| 特级大荫道BBwBBwBBW| 亚洲诱惑| 日韩免费在线观看不卡| 丁香五月影院| 亚洲影视高清第一页| 樱花蜜乳av| 乱理日韩中文| 欧美色图色综合| 中文字幕人妻丝袜| 国产路线专区| 激情综合网激情五月天| 精品一区二区三区18| 一区二区三区激情在线观看| 涩爱AV在线| 91色色网站| 九九热精品在线| 久久久久久久久久久久黄色| 人妻色偷色噜| 男人下部插入女人下部| 懂色Av| 亚洲丝袜色| 国产免费内射视频| 男人天堂2012| 校园春色 亚洲| 一区二区三区黄片免费观看| 久久婷婷五月天| 白丝少妇一区二区| 91露脸熟女专区| 中国黑人三级片网站上区| 极品综合| 亚洲限制级| 日韩熟女乱伦中出| 九九九只有精品| 欧美综合区| 麻豆一区二区AV天美| 青草视频在线看看看看看看看看看| 一卡二卡三卡| 国产精品一二三区福利| 人妻色偷色噜| 操逼999| 这里只有精品视频在线观看麻豆| 999九九九九国产动| 免费毛片在线播放| 天天干18禁| 91色噜噜狠狠| 国产亚洲精品玖玖玖在线观看| 久久久96精品| 国产精品色色| 88xx成人精品视频| 狠狠2050在线观看| 91精品久久综合熟女| 亚洲国产丝袜熟女av| 亚洲中文电影| 国产 日韩 另类 视频一区爱| 久久久久久九| 伊蕉97蜜桃97狠狠综合干| 免费看A片毛毛片在线播| 色九久| 日韩少妇丰满亚洲| 国产亚州精品美女久久久免费| 后入国产| 国产精品久久久久久久免牛肉蒲团| 自拍偷拍2025在线观看| 超碰精品国产无码| 国产超碰97| 97色冈| 国模精品娜娜一二三区| 小说区 图片区色 综合区| 校园春色中文字幕AV| 在线观看一卡二卡| 久操视频资源站公开| 91丝袜美女视频| 久久视频,这里只有精品 | 亚洲日韩美女丝袜美腿人妻视频| 中文乱码99| 丁香五月久久| 欧美专区日本专区| 26uuu最新| 亚洲图片 欧美电影| 色老牛| 国产蜜臀精品一区免费尤物| 亚洲国产高清福利视频| 少妇一区二区三区高速| 啊啊啊久久| 无码九九| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 欧美91在线+|+欧美| 97电影院超碰| 国产伦乱91| 欧美极品美女aaaaaa级黄片| 国产一区在线看| 强奸熟女一区二区三区| 精品一区96| 99热精品在线| 亚洲aV无码成人在线观看| 免费观看网黄| 欧美日韩传媒| 天操天操夜操夜月月年年操操| 色色五月天激情| 亚洲欧美日韩免费电影| J?P?NESEHD熟女熟妇伦| 色区97| 欧美偷偷网| 天天综合网1| 91骚妇| 男人的天堂在线2| 国产视频三区四区| 黄色污污污污污污网站| 97人人草| 狠狠干综合| 噜噜噜无码AV一级一级久久影院| 日韩成人性爱AV| 亚洲成a人在线观看久| 欧美国产精品| 91看黄片| 亚洲国产婷婷在线播放| 麻豆国产视频精品观看| 亚洲欧美色图小说| 亚洲伊人a线观看视频| 视频一区二区三区精品| 亚洲欧美日韩激情不卡| 神马九九| 国产真乱mangent| 亚洲国产一区二区日韩专区| 久综合国内精品自在自线| 日韩激情无码影院| 亚洲 日本 国产 综合| 国产人妖的免费的视频| 一二三四视频中文字幕在线看| 一个国产在线综合网站| 天天干干天天干干| av日韩国产一区二区| 91操人| 欧美日韩性爱视屏免费看了| 色色色综合网| 91精品国产综合久久久蜜臀| 啪啪视频mP4| 激情欧美日韩女同久久| 国产性爱欧美性爱在线| Aa东京男人的天堂| 一区二区三区一亚洲中文字幕、综合区灬| 人妻蜜桃臀| 欧美97超碰| 99视频这有这里有精品| 凹凸视频在线观看伊人| 亚洲高清国产理伦片| www色婷婷| 91久久国产综合久久| 91高跟美女在线播放| 国产精品一区二区后入| 亚洲九九视频| 久久亚洲中文字幕视频| 北约熟女超碰| 免费一级欧美片片线观看| 天天看天天综合成人网| 啊啊啊在线观看免费视频| 好吊色一区| 精品免费成人久久| 1769成人国产精品视频| 成人免费福利在线观看| 天天日天天舔天天喷天天射| 精品人妻一区二区免费蜜桃| 女同性恋中文字幕| 操逼操2| 日韩欧美成人性爱在线| 国语精品av| 欧美日韩高潮喷水91| 日韩av熟女一区二区三区成人| 亚洲图片 激情小说| 91亚洲在线| 爽极品影院| 五月天丁香网| 大香蕉青青9| 精品国产乱码久久久久久蜜臀| 超碰色老头| 交换娇妻呻吟声不停中文字幕| 91色色色| 色在线69堂| 婷婷激情四射| 国产呦精品一区二区三区下载| 青娱乐av在线| 快灬快灬 一下爽蜜桃在线观看| 日韩三级在线观看网站| 高清成年美女黄网站免费大全| 99色视频| 日本熟妇自慰性高潮一区二区三区| 尤物视频视频官网| 99热精品在线播放| 欧美熟女丝袜| 思思视频免费看网站| 欧美日韩99| 亚洲欧美啪啪| 日本十八禁免费看污网站| 九九热精品| 安微少妇操BBB| 大香蕉www.超碰| 久久嫩草国产成人一区| 九九草| 操美女高潮抽搐白浆| 射丝袜大香蕉| 久久中文字幕一区不卡| 国产a级精品| 日韩97P| 大香蕉人妻| 情色图区| 亚洲偷拍自拍在线视频| 久久久久婷婷精品av电影| 欧美精品欧美精品系列| 亚洲一本色码中文字幕| 精品九九九| 天天干一干| 久久婷婷亚洲欧| 精品亚洲一区在线观看| 福利风月五月天影院| 在线不欧美| 日韩无码嘿咻黑热久| 亚洲无码一区成人免费午夜| 91精品伊人久久久大香线蕉91| 人人操人人射人人干| 亚洲国产av中文字幕久久 | 亚洲国产亚洲天堂| 中文字幕乱在线伦视频中文字幕乱码在线 | 色婷婷影视| 亚洲性高潮| 久热99| 精品久久久久综合无码| 色婷婷激情| 黄站在线免费观看| 欧美日韩性爱视屏免费看了| 啊啊在线| 日韩精品区二区三区不卡| 综合亚洲欧美| 欧美熟妇乱码在线一区| 国内毛片欧美香蕉精品| 婷婷激情一区二区三区俺也去| 亚洲欧洲自拍图片专区满春格| 欧美亚洲一区二区久久久婷精品大包诱| 欧美不卡在线一区二区| 久久999久| 2017av无码免费无线播| 一区中文字幕二区日韩| 久久 国产 无码| 精品国产国产AV| 99re公开精品免费视频| 97操| 色999偷自拍拍| 国产传媒操逼视频| 啊啊啊轻点在线观看| 色9999日韩国产| 干少妇视频| 91+欧美| 伦伦成年午夜免费视频| 青青草公开在线免费不卡视频| 欧美躁死她一区二区| 国产午夜在线观看| 青青草视频导航官网| 天天干人人干天天日97| 熟女露脸激情自拍视频| 九九热免费视频| 国产在线视频二区| 亚洲极品| 日本一二三高清| 欧美一级黄色18片免费看| 少妇一区二区三区| 欧美91网站| 色999五月色| 91深夜夜| 久草成人影片| 日韩欧无码一区二区三区免费不卡 | 亚洲玖玖爱| 久热伊人99re| 大色综合网| 日本不卡中文| 国产农村妇女精品一| 精品久久久久久中文| 91色插| 男人 天堂 日 亚洲| 日韩成人电影AV| 人妻偷拍一区二区三区| 中文字幕av一区二区三区人妻少妇| 久超碰在| 性色AV网站| 无码二级三级| 成人热久久精品| 丁香六月婷婷久久综合| 亚洲无码国产精品久久| 天天综合色图| 玖玖超碰熟| 欧美色偷拍 | 东北操逼| 大香蕉AV丝袜| 国产免费久久久久| 翔田千里一区二区三区奶水| 96麻豆精品一区二区三区| 偷拍欧美激情| A片 AV一级在线播放观看免费| 天天日熟妇| 大香蕉伊人在线成人AV在线观看| 日韩国产乱子伦App| 久久AV无码AV| 国产精选视频| 鸥美极品| 99.色网| 开心五月天激情网| AV九九| 日本午夜福利影院| 免费中文在线| 黑人操一区二区| 香蕉国产精品麻豆亚洲欧美日韩 | 顶级少妇BT天堂| 婷婷伊人| 国产尹人在线视频免费| 综合久久久久久久综合网| 亚洲精品一区二区精华| 久久久新亚洲AV| 91在线视频国产网站| 国产搭汕a级片| 亚洲少妇视频| 亚州精品人妻一二三区| 欧美在线视频观看一二三四区高清| 日韩久久三区| 久热婷婷| www.av在线观看| 久久精品色欧美aⅴ一区二区| 日本日逼高清| 亚洲一区二区三区中文字幕| 久艾草在线精品视频在线观看| 草草草视频在线免费看| 九九无码| 午夜男女爽爽大片免费观看| 一起草三级AV电影在线观看 | 日韩情色AV| 精品夜夜澡人妻无码| 91人人爽人人爽人人人,gav福利视频导航,日韩欧美亚洲国产字幕四区 | 国产一级作爱毛片| 97久久精品亚洲中六字幕| 狠狠躁AV| 用力操死我| 人人澡综合涩| 久久一本大香蕉| 天堂国产AV| 媚薬在线视频麻豆| 久久久久96| 超碰吊日色| 91精品操美女| 操一对老熟妇爽上天视频| 精品一级| 欧美真人抽搐一进一出gif| 国产精品久久久久无码Av网曝门| 思思热在线视频在线| 明星性猛交ⅹxxx乱大交| 精品视频在线观看| 国产乱伦亚洲色图高清无码| 色噜噜精品一区二区三| 高清无码国产亚洲| 久久极品一区二区| 蜜桃精品一区二区三区ww| 五月天社区| 乱理日韩中文| 五月开心久久AV官网| 国产97/欧美| 亚洲人天堂| 欧美偷拍区| 国产精品宅男免费| 另类在线| 蜜臀亚洲中文| 天天在线91| 99热这里只有精品1| 99人妻| 日韩激情无码影院| 国产精品色片一区二区| 五月丁香激情综合网| 操学生天天| 久久激情四射婷婷丁香五月天| 日本精品五区| 久操凹凸视频| 韩国一区二区精品亚洲| 欧美国产一区二区三区麻豆传媒 | 熟女丰满人妻一区| av东京热男人的天堂| 熟妇视频一区二区三区在线| 人人干黄色| 91久久久久久| 久热69九色熟妇97| A一级色女| 91老熟妇| 日本成人A片网站| 亚洲成人在线播放| 亚洲有码第一页| 屁股久久久久久| 性爱1区| 日本天天吊| 亚洲丝袜99| 国内偷拍精品一区二区| 日本污ww视频网站| 日本丝袜美腿人妻九九| 日本女人久久久| 操逼不卡中文字幕| 久久久18禁| 久久久久久久唑| 夜嗨影院| 亚洲熟女乱熟乱熟妇综合网二区| 蜜桃av色偷偷av老熟女| 欧美日韩性爱操大逼| 久久久不卡区一区二区三区久久久| 亚洲中文丝袜美腿诱惑字幕| 国产高清MV操逼视频| 日本天堂网| 易易A毛视频| 唐山老熟妇露脸啪啪叫| 婷婷五月天无码| 国产精品人妻无码久久久互動交流| 亚洲第一在线视频| 99热精品青草在线 | 嫩草影院永久在线制服丝袜| 97欧美精品| 婷婷AV一区二区三区| 爱干爱射网啊啊啊| 中文字幕乱码在线| 国产亚洲人妻综合日韩 久久| 97在线欧洲| 日本中文字幕不卡视频| 日本久操视频| 欧美性爱超碰97| 成人三级片无码| 色99久草| 欧美日韩性爱无码| 老鸭窝日丰县女人| 国产东北女人在线视频| 久久久久久久久久久久黄色| 91春色| 99.色网| 久久婷婷电影网| 日本美女性生活久久久久久久 | 日va操| 久久人妻四季| 久草午夜| 亚洲精品一区二区精华| 日夜啪电影| 9118禁| 大香蕉伊人亚洲| 欧美一二三| 色九九九| www.亚洲黄色| 国产精品91ai| 草莓精品视频在线免费观看| 久操大香蕉超碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰 | 操www| 91九九九吃| 人人干人人操人人..com| 激情啪啪视频| 欧美性爱一级操| 清纯唯美第一页| 91视频国品一二三区| 国产精品人妻无码久久久老鸭窝| 一区二区久久天天干狠狠| 亚洲在线网站| 久久超碰爱| 欧美国产精品久久九九| 嗯阿好爽好紧| 粉嫩av久久一区二区三区| 欧美成人综合| 亚洲第一无码播放立川理惠| 欧美色干| 啊啊啊啊啊在线观看网址| 亚洲欧洲综合成人av一区| 热的中文 热的有码 热的国产| 亚洲欧美日韩精品久久久一区二区| 伊人四虎综合| 欧美亚洲国内自拍| 国产真乱mangent| 欧美日韩亚洲国产中文永久天天看| 国产极品美女高潮无套在线观看| 在线小说视频一区| 亚洲综合激情五月久久| 久久草草亚洲蜜桃臀| 人妻精品4K4K4K4K4| 91人妻精华帖| 999热这里只有精品| 欧洲射精91| 天天精品| 国产在线播放成人免费| 神马久久啊啊| 狠狠色综合网| 国产对白刺激视频| 综合久久99亚洲人妻中文在线| 色色婷| 18禁免费视频| 韩日欧亚a级| 黄色不卡视频| 亚洲av无码成人精品国产| a'v在线资源| 蜜臀久久精品久久久久视频| 美女尤物福利视频| 黄色区免费观看中文字幕| 亚洲天天更新| 在线中文AV| 熟女丰满人妻一区| 综合一区中亚洲国产成人综合精品| 亚洲图片欧美| 国产精品一区二区后入| 人人摸人人干| 视频分类 国内精品| 日日夜夜摸| 亚洲性综合11| julia中文字幕在线观看| 伊人色综合网电影| 岛国黄片网站| 国产精品不卡少妇白| wuyechaopeng| 亚洲AV乱码专区国产噜噜亚洲| 日本日逼视频网| 国模艳艳啪啪一区| 人妻色偷色噜| 精品1区2区3区| 超碰成人最新最好看| 试看日韩黄片| 日本 情色 1区2区3区| 安徽熟妇视频| 96精品在线| 性爱乱伦一区| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 欧美线天码中字| 日韩午夜国产| 日韩人妻操B| 久久黄黄| 欧美一区二区三区蜜桃| 国产毛片久久久久久久| 操逼视频国产无套| 九九亚洲| 懂色Av一区二区三区| 热久久无毒不卡| 国产精品午夜福利视频| 神马久久中文字幕| 亚洲 中文 女同| 久操九九九九| 九九热视频在线观看| 天天综合网站| 翔田千里爆乳巨臀无码| 欧洲与亚洲欧美精品中文字幕| 五月婷婷丁香六月| 欧美性爱91| 美女黄色91| 好看的久久不射无码影视影院| 男人的天堂com| 骚乳在线| 很黄很污的免费网站| 天天看少妇| 黄页18禁| 色97| 色色国产| 六月丁香网| 操操操日本的逼| a级成人毛片免费视频高清| 精品一区二区成人| 国产精品久久久久久久黄无码| 最新三级网址| 超97在线精品视频| 亚洲AV无码成人精品久久| 精品午夜福利| 亚洲国产精品久久AV| 成人26uuu| 午夜激情成人在线观看| 黄色AAAAA欧美| 韩国一级婬片A片AAAAA| 综合色99| 99热自拍| 深夜啪啪啪视频免费| 久久av色| 欧美极品色| 999久久久久久久久| 亚洲情色欧美| 无码久久国产| 操逼操逼逼操操逼91 | 欧美天天搞| 欧美韩日精品99综合| 精品欧美乱码久| 无码精品久久久久久亚洲| 日韩一区二区精彩视频| 色黄色美女大长腿午夜视频| 被体育老师抱着c到高潮| 亚洲综合在线视频| 青娱乐av在线| 色香欲天天天天综合色| 久久色AV线| 999久久久九九九九| 亚洲日本激情| 最新日韩黄片| 亚洲男人天堂网久久|