免费国产精品自在自线-91精品国产色综合久久久浪潮-99热久久免费频精品-国产精品国模在线观看-久久亚洲国产精品成人?V秋霞-久久国产一级A片免费播放-亚洲国产欧洲综合97久久-久久国产白嫩美女呻吟高潮

ARTICLE DETAIL

資訊詳情

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

用 GPT 6.1 從零開發(fā)紅警風格 RTS 游戲:AI 輔助編程的硬核實踐

用 GPT 6.1 從零開發(fā)紅警風格 RTS 游戲:AI 輔助編程的硬核實踐 最近我干了一件特別“離譜”的事用 GPT 6.1 從頭寫了一個可以玩的《紅色警戒》風格即時戰(zhàn)略游戲而且已經(jīng)把完整源碼開源出來了。先別急著吐槽說真的這個項目做完之后我自己都挺意外的——不是意外 AI 能寫代碼而是意外它居然能把 RTS 這種硬骨頭啃下來從地圖尋路到戰(zhàn)斗數(shù)值再到 UI 交互最終竟然跑出了一個能對戰(zhàn)能推家的可玩版本。我先把話說清楚這不是拿現(xiàn)成引擎改個皮也不是調用某個游戲框架套個殼。整個游戲的邏輯層、渲染層、AI 行為樹、尋路系統(tǒng)甚至資源和經(jīng)濟循環(huán)全部是基于 GPT 6.1 生成代碼并手工整合而成的。項目本身是 Web 實現(xiàn)瀏覽器打開就能玩跨平臺、免安裝對局邏輯全部跑在本地代碼已經(jīng)打包好放到開源平臺了。這篇文章我會把整個從構思到落地再到開源的經(jīng)過完整拆一遍包括技術選型是怎么想的、Prompt 是怎么寫的、哪些環(huán)節(jié)最容易翻車、以及最后是怎么把代碼質量打磨到可以見人的程度的。無論你是對 AI 輔助開發(fā)感興趣還是單純好奇 RTS 游戲底層是怎么運作的這篇都能給你一點實打實的東西。1. 項目整體設計與思路拆解1.1 為什么偏偏選了 RTS 這種硬骨頭很多人一聽說“用 AI 寫游戲”第一反應是做個貪吃蛇或者彈球小游戲。說實話那種項目我也試過讓 GPT 寫一個貪吃蛇確實幾分鐘就能跑起來但做完之后毫無成就感本質上就是在復制一個已經(jīng)被寫過無數(shù)次的東西。做“紅警”的念頭來自于一次很偶然的閑聊朋友說現(xiàn)在的 AI 寫代碼越來越厲害但充其量就是寫寫工具函數(shù)和頁面組件稍微帶點狀態(tài)機的游戲邏輯就會開始胡編。這句話我記下了但心里不服氣——RTS 游戲在編程領域被稱為“交互復雜度之王”背后涉及網(wǎng)格地圖、單位尋路、碰撞檢測、戰(zhàn)斗結算、資源管理、AI 策略等多個核心系統(tǒng)聯(lián)動如果你能把這個東西用 AI 輔助從零做出來那才真正說明 AI 輔助開發(fā)已經(jīng)跨過了玩具級門檻。選定《紅色警戒》風格還有一個現(xiàn)實原因類型足夠經(jīng)典。幾乎所有玩家對紅警的底層玩法都有直覺認知采礦、造兵、推家、開圖。這種強烈的認知模板幫我省了大量需求描述的時間——我不用跟 GPT 解釋“什么是即時戰(zhàn)略游戲”“為什么要集結點”它訓練語料里本身就包含了海量 RTS 相關的代碼和設計模式相當于站在一個非常成熟的語義基座上工作。1.2 技術方案選型用什么殼子裝這顆心技術棧的選型直接影響整個項目走向我大概對比過三條路線最后選了一條最省心也最適合 AI 輔助的。第一條路線是 Unity C#。優(yōu)勢是引擎成熟、網(wǎng)上資料多、紅警同人項目一抓一大把但問題也很明顯Unity 的工程結構極其復雜腳本生命周期、Prefab 系統(tǒng)、資源管線這些概念即使讓 GPT 來寫也免不了大量手工拖拽和裝配工作AI 生成的代碼大概率沒法直接融合進龐大的引擎架構里。OpenRA紅警的開源重制版源碼倒是現(xiàn)成的但那叫“二次開發(fā)”不叫“從零寫一個”違背了我定義這個項目時的最初動機。第二條路線是 Python Pygame。語法簡單、GPT 生成代碼的正確率高但 Pygame 做 RTS 有三個致命傷性能捉急單位一多就卡成幻燈片、跨平臺分發(fā)困難要裝解釋器和依賴、Web 化幾乎沒有可能。做游戲的人都知道RTS 玩家最看重的就是“千軍萬馬”的流暢感性能天花板太低這個項目注定走不遠。第三條路線就是我最終選擇的純前端 Web 實現(xiàn)核心游戲邏輯用 JavaScript 編寫Canvas 2D 負責渲染沒有任何運行時依賴。為什么這條路最對原因有三。第一瀏覽器的 Canvas 2D 性能其實比很多人想象的好得多用簡單臟矩形和緩沖優(yōu)化跑幾百個單位完全沒有壓力而 RTS 的地圖操作天然適合 Canvas 做網(wǎng)格化渲染。第二Web 項目不存在平臺分發(fā)問題寫完了往靜態(tài)托管平臺一扔鏈接發(fā)過去任何人打開就能玩開源之后別人 Clone 下來也不需要配置任何環(huán)境。第三也是最重要的JavaScript 生態(tài)里沒有強制的“工程化范式”一個 HTML 里既能寫邏輯也能調渲染GPT 對單文件代碼的完整生成能力是最強的這大大降低了 AI 產(chǎn)出代碼與項目結構之間的摩擦系數(shù)。1.3 我把項目切成了幾個可以喂給 AI 的模塊在實際動工之前我先做了一件很關鍵的事把整個紅警項目拆成一張模塊清單。用人話說就是我不可能讓 GPT 一次性生成一個 5000 行的巨大文件也不應該在整體架構還沒定型之前就讓 AI 往一個方向亂寫。拆模塊這件事的作用是雙重的對我自己來說它讓我清楚了完成這個項目需要哪些組成部分對 AI 來說每一塊都是相對獨立、職責明確的子任務Prompt 可以寫得非常聚焦。最終我拆出了下面這幾個核心子系統(tǒng)地圖系統(tǒng)負責生成和管理戰(zhàn)場網(wǎng)格包括地形類型平原、山脈、水域和寬度高度參數(shù)單位系統(tǒng)處理所有單位的屬性、行為、生命周期和移動邏輯從步兵到坦克都掛在這棵樹下尋路系統(tǒng)解決“從 A 點到 B 點怎么走”的問題要求能繞開障礙物并支持大量單位同時尋路戰(zhàn)斗系統(tǒng)是傷害計算和攻擊行為的總調度包含射程判定、攻擊間隔和開火特效AI 系統(tǒng)負責電腦玩家的決策邏輯包括擴張、造兵和作戰(zhàn)資源與經(jīng)濟系統(tǒng)管礦場、礦石、建造消耗這些數(shù)值關聯(lián)的東西UI 交互系統(tǒng)接住鼠標點擊、框選、命令下發(fā)的最小可用界面。這個模塊劃分思路在這個項目里被反復驗證了——模塊邊界越清晰Prompt 里讓 AI 生成的東西就越不會跑偏。后面你會發(fā)現(xiàn)我把這些模塊用“垂直切片”的方式一個個交給 GPT 去生成再一步步縫合起來每一步都能驗證結果是否可用。2. 核心系統(tǒng)實現(xiàn)與代碼拆解2.1 地圖載具網(wǎng)格系統(tǒng)與資源繪制先說地圖模塊。RTS 的地圖和棋盤的底層邏輯幾乎一模一樣本質就是一個二維網(wǎng)格數(shù)組每個格子記錄自己的地形類型和狀態(tài)。為了方便后續(xù)尋路和 AI 模塊復用地圖的數(shù)據(jù)結構和渲染分離是必須的——數(shù)據(jù)層就是一個純數(shù)組渲染層才負責在 Canvas 上畫顏色。GPT 生成的地圖初始化代碼非常規(guī)整這里我把核心邏輯提煉出來class GameMap { constructor(width, height) { this.width width; this.height height; this.tiles []; // 核心用一個二維數(shù)組存儲每個格子的地形類型 // 0 平地, 1 山脈(不可通行), 2 水域(不可通行) // 3 礦石區(qū)(可通行且可采集) for (let y 0; y height; y) { this.tiles[y] []; for (let x 0; x width; x) { this.tiles[y][x] 0; } } this.generateTerrain(); } generateTerrain() { // 使用簡單的噪聲函數(shù)生成連續(xù)地形區(qū)域 // 并不是隨機撒點而是用perlin-like模糊制造山脈與水系 const seed Math.random() * 1000; for (let y 0; y this.height; y) { for (let x 0; x this.width; x) { const noiseVal this.smoothNoise(x / 12, y / 12, seed); if (noiseVal 0.25) this.tiles[y][x] 1; else if (noiseVal 0.85) this.tiles[y][x] 2; else if (noiseVal 0.65) this.tiles[y][x] 3; } } } }這段代碼的思路很典型不是把地圖隨機撒滿障礙物而是通過平滑噪聲函數(shù)讓地形產(chǎn)生連續(xù)的自然感。山脈和水域連成片礦石散布在特定海拔區(qū)域這樣地圖更容易形成天然的攻防通道和資源爭奪點玩起來才有紅警的味道。數(shù)據(jù)層設計是純數(shù)值的渲染層只是按照 tile 數(shù)值填色我讓 GPT 在渲染時又加了一層“近似色抖動”的邏輯——相鄰格子的顏色會在一個很窄的范圍內浮動遠看有紋理感而不是死板的色塊。這個模塊是整個項目的地基后面所有的尋路和 AI 邏輯都建立在地圖數(shù)據(jù)之上所以務必保證數(shù)據(jù)訪問接口簡潔統(tǒng)一。我在這里做了一次小的重構把所有對map.tiles[y][x]的直接訪問統(tǒng)一封裝成getTile(x, y)和isWalkable(x, y)這種語義明確的方法后面三四個模塊都因此省了大事。2.2 單位對象數(shù)據(jù)模型與狀態(tài)流轉單位的對象模型是整個游戲里最容易被 AI 寫飄的部分。很多 AI 生成的游戲代碼習慣性地把單位設計成一個巨大的類里面堆了移動速度、攻擊力、血量、冷卻時間、生產(chǎn)費用、圖像顏色、動畫幀等全部字段。這種寫法在小規(guī)模 demo 里沒問題但一旦單位類型多起來維護和擴展都會失控。我給 GPT 的指令里特別加了約束單位狀態(tài)和行為邏輯必須拆開屬性走配置行為走方法。用一個配置表定義每種單位的基礎數(shù)值單位實例只負責持有動態(tài)狀態(tài)。// 單位類型配置表所有數(shù)值集中管理 const UNIT_TYPES { rifleman: { hp: 50, speed: 1.2, damage: 8, range: 80, cost: 100, cooldown: 600, color: #4a9e5c }, tank: { hp: 150, speed: 0.9, damage: 25, range: 110, cost: 500, cooldown: 900, color: #5b6d47 }, harvester:{ hp: 120, speed: 0.6, damage: 0, range: 0, cost: 400, cooldown: 0, color: #d4a017 }, turret: { hp: 200, speed: 0, damage: 20, range: 140, cost: 300, cooldown: 700, color: #7a7a7a } }; class Unit { constructor(type, x, y, owner) { this.type type; // 關鍵不是每個單位都復制一遍所有屬性字段 // 而是共享config里的靜態(tài)數(shù)據(jù) this.config UNIT_TYPES[type]; this.x x; this.y y; this.owner owner; this.hp this.config.hp; this.state idle; // idle / moving / attacking / harvesting / dead this.path []; this.target null; this.attackTimer 0; this.alive true; } }共享配置表的設計對后續(xù)平衡性調試特別友好。最后我調數(shù)值平衡的時候只需要修改UNIT_TYPES里的幾個數(shù)字整局游戲的體驗就會立刻改變不需要滿代碼庫搜索硬編碼數(shù)值。AI 生成代碼時很容易在狀態(tài)流轉那里犯迷糊所以我專門在 Prompt 里畫了一條行為鏈閑置狀態(tài)下收到移動命令就進入移動移動到達終點附近就回到閑置攻擊范圍內出現(xiàn)敵方單位就停下并發(fā)起攻擊攻擊打死目標后繼續(xù)移動或回到閑置采礦車在礦區(qū)和精煉廠之間來回切換采集狀態(tài)。這樣一條一條寫清楚AI 生成的狀態(tài)機基本就不會打架了。實際運行里最容易被忽視的其實是“死亡”狀態(tài)。單位血量歸零后要立刻從渲染隊列里移除、從單位列表中刪除、格子占用標記清空這三件事必須做成一個原子操作否則就會出現(xiàn)“尸體還擋著路”或“死了還能被打”的笑話。2.3 尋路系統(tǒng)BFS 與 A* 的實際取舍尋路是 RTS 里最容易出戲的環(huán)節(jié)。單位卡墻、轉圈、重疊是低級問題稍微高級一點的是大量單位同時尋路時性能崩盤。我讓 GPT 先寫了一個基礎版本基于 BFS 的四方向尋路。為什么最初不上 A*因為 BFS 的實現(xiàn)簡單到不可能出錯而且在小地圖規(guī)模下例如 64×64 的網(wǎng)格BFS 的搜索空間完全可控。function findPath(map, startX, startY, targetX, targetY) { const queue [{ x: startX, y: startY, path: [{ x: startX, y: startY }] }]; const visited new Set(); visited.add(${startX},${startY}); const dirs [{ dx: 1, dy: 0 }, { dx: -1, dy: 0 }, { dx: 0, dy: 1 }, { dx: 0, dy: -1 }]; while (queue.length 0) { const current queue.shift(); if (current.x targetX current.y targetY) return current.path; for (const { dx, dy } of dirs) { const nx current.x dx; const ny current.y dy; if (!map.isWalkable(nx, ny)) continue; if (visited.has(${nx},${ny})) continue; const newPath [...current.path, { x: nx, y: ny }]; queue.push({ x: nx, y: ny, path: newPath }); visited.add(${nx},${ny}); } } return null; // 無法到達 }這里存在一個真實工程里必須處理的性能坑[...current.path]在每層擴展時都會拷貝整個路徑數(shù)組地圖大的時候 BFS 的路徑數(shù)組會不斷膨脹這在單位數(shù)量多時會拖垮內存。我后來用了一個經(jīng)典優(yōu)化——不直接把路徑存在隊列節(jié)點里而是用一個“前驅節(jié)點表”搜索完畢后再從終點倒推回溯出整條路徑。把這段優(yōu)化思路作為反饋給 GPT 之后它很快給出了改進版本尋路系統(tǒng)的性能直接翻了幾倍。從 BFS 換成 A* 是在多單位尋找目標之后發(fā)生的。BFS 在 64×64 地圖上對單個單位沒問題但 50 個單位同時尋路時每一幀需要的計算量就繃不住了BFS 要擴展到整個網(wǎng)格才能確定最短路徑A* 憑借啟發(fā)函數(shù)可以更早收斂。A* 的啟發(fā)函數(shù)我用的曼哈頓距離因為地圖只允許四方向移動曼哈頓距離是 完美且一致的啟發(fā)函數(shù)。目前版本的性能足夠支撐一局游戲上百個單位同時尋路每幀耗時穩(wěn)定在幾毫秒級別配合 Web Worker 異步尋路其實也不是必須的。2.4 戰(zhàn)斗數(shù)值攻擊命中與傷害結算的隱藏邏輯戰(zhàn)斗系統(tǒng)做得好不好直接決定這個“紅警”有沒有魂。最開始 GPT 生成的戰(zhàn)斗代碼極其樸素單位進入攻擊距離后直接扣血雙方站著對擼直到一方倒下。這跟紅警的戰(zhàn)場體驗差了十萬八千里。我調整的思路是把攻擊拆成幾個階段并逐個在 Prompt 里說明。首先是接敵判定單位不是一進入射程就攻擊而是需要一個朝向目標的過程。其次是攻速窗口每次攻擊后要經(jīng)過冷卻時間才能發(fā)動下一次這自然形成了雙方交火時的交互節(jié)奏。然后是傷害生效這一步通過命中檢查來決定本輪攻擊是否造成傷害。我沒引入復雜的彈道和隨機 M iss 率而是測試了一套更直觀的規(guī)則攻擊動畫播到中點時進行一次射線檢測如果目標此刻還在射程范圍內就直接扣血。attack(target) { if (this.attackTimer 0) return; // 冷卻中 this.attackTimer this.config.cooldown; const dx this.x - target.x; const dy this.y - target.y; const dist Math.sqrt(dx*dx dy*dy); if (dist this.config.range) { const dmg this.config.damage; target.takeDamage(dmg, this); } else { // 目標在攻擊瞬間移出了射程范圍攻擊落空 } }這個設計有一個讓我很滿意的副產(chǎn)品單位在追擊過程中會一邊追一邊嘗試攻擊同時由于攻擊落空的判定存在不會出現(xiàn)“隔著地圖邊緣的極限拉扯打傷害”這種失衡情況。步兵集群打坦克的數(shù)值被壓得很低因為步兵單位刷新多、數(shù)量大坦克打步兵則有濺射特效突出反步兵的壓制感。這些數(shù)值不是我憑空想的是我?guī)е鴮t警原版的記憶先給 GPT 一版“帶方向感的參數(shù)表”然后自己反復試玩修改了三四輪才定下來的。血條渲染反饋和受擊閃白也是這個階段加進去的雖然工作量不大但視覺上給玩家的打擊反饋立刻立體了這是涂數(shù)值時最容易忽略、但玩家感知最強的一層。2.5 AI 對手讓電腦學會筑造基地和偷襲RTS 游戲如果沒有一個會反抗的電腦對手那基本上就只是個沙盒。紅警的魅力一半在競技對抗一半在與電腦斗智斗勇。AI 模塊的設計我分了認知層和決策層兩層。認知層負責給 AI 一個“有限的視野”——它不能也就是地圖全開的上帝視角而是只知道自己基地周圍以及己方單位視野范圍內的信息。我用一個簡單的遮蔽算法每個單位的偵察半徑標記出一個視野集合AI 的尋敵邏輯只能在這個集合內尋找目標。決策層負責完成典型的 RTS 戰(zhàn)術動作擴張在資源點附近建礦廠、生產(chǎn)維持軍隊數(shù)量、攻擊當兵力達到一定閾值時發(fā)起總攻和防守基地被攻擊時召回部隊。這個“偵查→判斷→行動”的循環(huán)本質上是一個小型行為樹。我的做法是用一段偽代碼大綱在 Prompt 里描述整個行為樹的流轉條件讓 GPT 用 JavaScript 實現(xiàn)。以下是簡化版class AIController { constructor(player) { this.player player; this.state expand; // expand / buildArmy / attack / defend this.army []; this.attackThreshold 8; } update() { // 認知層更新可見區(qū)域內的敵方單位信息 this.updateVisibility(); // 決策層基于當前狀態(tài)和資源情況決定下一步動作 if (this.state expand) { if (this.player.money 500) { this.buildHarvesterAndMine(); } else { this.state buildArmy; } } else if (this.state buildArmy) { if (this.army.length this.attackThreshold) { this.state attack; } else if (this.player.money 800) { this.produceUnits(); } else { this.state expand; } } else if (this.state attack) { // 選取一個可見的敵方建筑作為主目標 const target this.findBestTarget(); if (target) { this.commandArmyAttack(target); } // 軍隊傷亡過半則回防休整 if (this.army.length this.attackThreshold * 0.4) { this.state defend; } } } }這套 AI 邏輯不是時刻最優(yōu)的但非常符合 RTS 的“真實感”。初期電腦優(yōu)先建經(jīng)濟中期攢兵后期一波流推過來同時為了阻止玩家“龜縮憋大招”我加了一個很狗的條件當 AI 偵察到玩家單位數(shù)量 3 倍于己方時AI 會提前發(fā)動騷擾攻擊逼玩家提前接戰(zhàn)。這個設計也讓玩家在低難度下不會感到電腦作弊在高難度下又能感受到“被針對”的壓力。我采用了難度分級的方式去調節(jié) AI 的擴張速度和攻擊閾值而不是直接給 AI 加攻擊力和血量難度增長完全靠策略強度的抬升玩家玩起來不會覺得是在打一個數(shù)值怪物。3. 實操記錄從零開始到跑通對局3.1 我是怎么給 GPT 寫 Prompt 的這個項目里最核心的實戰(zhàn)技能其實不是寫代碼而是設計 Prompt。我總結了一套“三步式 prompt 模板”對 GPT 類的對話模型效果特別穩(wěn)定。第一步是定義角色和約束。每條 prompt 我都會寫明“你是一名資深 RTS 游戲開發(fā)者請用純 JavaScript 實現(xiàn)……不要依賴任何第三方庫不要使用外部引擎所有代碼必須可以嵌入單個 HTML 文件運行”。這個角色的設定讓答案的語氣和風格直接對齊了。第二步是描述功能需求但絕不給太模糊的描述。與其說“做一個尋路系統(tǒng)”不如說“請實現(xiàn)一個在二維網(wǎng)格地圖上尋找最短路徑的函數(shù)地圖用 0/1 二維數(shù)組表示可通行/不可通行單位只能上下左右移動輸入起點和終點坐標輸出路徑坐標數(shù)組”。越具體生成代碼的邊緣情況處理越到位。第三步是附上相關的上下文。在寫單位類的時候我會把之前生成的地圖類的完整代碼貼進去明確說明“你已經(jīng)實現(xiàn)了下面的 GameMap 類現(xiàn)在要用它來寫單位移動邏輯”。把前序代碼作為上下文喂給 GPTAI 才知道自己現(xiàn)在在哪個工程里生成的東西才自然接得上。這里面有一個極有用的技巧當發(fā)現(xiàn) GPT 寫出的代碼有問題時不要去人肉修改代碼而是把報錯信息或錯誤行為描述反饋回去讓 GPT 自己改。這個項目里至少 70% 的 bug 都是通過這種方式消掉的。模型本質上是在對話中被“糾正行為”多輪下來生成的代碼會越來越貼合你的數(shù)據(jù)結構。3.2 垂直切片的開發(fā)節(jié)奏先跑通再優(yōu)化最初的版本我做了一個很大的冒險不使用分號拼接架構而是純粹用垂直切片的迭代方式每一輪都要保證“用戶能玩到新增的內容”。第一個里程碑只有一個能移動的黃色小方塊地圖連網(wǎng)格線都沒有。第二個里程碑加入地圖渲染和基本尋路點擊地圖任意位置方塊會自動繞過障礙物走過去。這個階段手感極其粗糙單位移動是帶瞬移感的因為尋路沒有做平滑插值但基礎框架正確這就是最關鍵的“從 0 到 1”。第三個里程碑加入采礦、精煉廠和建筑建造單位的循環(huán)此時已經(jīng)能體驗“攢錢-花錢”的經(jīng)濟系統(tǒng)了。第四個里程碑加入戰(zhàn)斗第一個敵人是固定不動的炮塔玩家能造三個步兵去打它。直到第五個里程碑我才讓 AI 文明整體運轉起來——建造、發(fā)展、出兵、戰(zhàn)爭這個時候第一場完整對局才真正跑通。這種開發(fā)節(jié)奏的心得是不要指望 GPT 一次生成一個完整游戲那就像要求一個實習生第一次上班就把公司的核心項目寫完。你要做的是讓每一輪對話解決一個很小的、可驗證的問題然后逐步拼接成完整的系統(tǒng)。每次里程碑完成后立刻保存一個版本這個版本是可以回頭回滾的安全錨點也不會因為新功能把老功能搞崩而有心理壓力。3.3 性能優(yōu)化的幾個關鍵動作性能問題是 RTS 從“能玩”到“順暢”之間最大的攔路虎。第一版測試時30 個單位同時移動已經(jīng)開始卡頓幀率掉到 30fps 以下。我抓到三個核心性能瓶頸。第一個是頻繁的 Canvas 全屏重繪。最初的代碼在游戲循環(huán)的每一幀都調用clearRect清空整塊畫布再全部重繪地圖和單位。地圖上的格子數(shù)量多、單位數(shù)量越多每幀重繪消耗就越大。優(yōu)化方式是引入臟矩形機制——只重繪上一幀和這一幀狀態(tài)發(fā)生變化的區(qū)域靜態(tài)地圖的部分可以預先渲染成離屏 Canvas每幀只需要把地圖圖塊drawImage過來再把移動的單位疊上去。這個簡單優(yōu)化直接讓幀率翻了兩倍多。第二個是單位之間的碰撞檢測。最初每個單位每幀都要遍歷所有其他單位判斷是否碰撞30 個單位就已經(jīng)有約 900 次兩兩距離計算。我改成網(wǎng)格哈??臻g劃分地圖被切成小格子每個單位只跟同格子和相鄰格子里的單位做碰撞檢測檢測次數(shù)從 O(n2) 降到了近似 O(n)。第三個是尋路緩存。對于靜止障礙物地圖同一條路徑通常會被多個單位使用我在尋路模塊里加了一層哈希地圖緩存相同起點終點組合的路徑直接復用。這個優(yōu)化在多個步兵同時去同一個采礦點的時候效果奇佳計算量大幅下降。3.4 開源前的 Code Review 與文檔整理游戲能跑通后離“可以開源”其實還有一道很大的坎。GitHub 上爛大街的“能跑的 demo”太多了但如果開源的目的不只是展示而是希望別人能參與貢獻或者從中學習代碼質量和文檔就是必須補的功課。我用了兩天時間做這件事。先把所有代碼從單 HTML 文件拆成模塊化的多個 JS 文件按照 Units、Map、Pathfinding、Battle、AI、UI 六個目錄整理。這個過程很痛苦因為最初為了省事很多函數(shù)是全局的拆分時要梳理依賴關系但不拆的話后續(xù)任何人接手都會頭皮發(fā)麻。然后是寫 README。我放棄了冷冰冰的技術清單式 README而是寫了一個“項目背后故事 快速試玩 技術架構圖 開發(fā)計劃”的混合版本。教程型文檔很重要我知道很多人拿到代碼后會想知道“從哪里開始讀起”所以特別加了一個“代碼地圖”章節(jié)告訴讀者入口文件是哪幾個、核心邏輯分別在哪個目錄。開源許可證我選了 MIT。RTS 游戲題材本身不涉及特殊授權問題MIT 對使用者最寬松如果有人想基于這個做二次開發(fā)或者學習改造法律限制最小對于一個學習向項目這是最合理的選擇。4. 常見問題與排查技巧實錄4.1 單位卡死在墻角或者繞著目標原地轉圈這是 RTS 尋路中最經(jīng)典的一類問題。癥狀是單位接到了移動命令但到了目標點附近后開始原地左右徘徊或者被一個角落卡住不停地抖。這個問題的根因通常不是路徑不存在而是單位到達“路徑終點”的判定方式太苛刻。如果你的到達判定是“單位坐標必須嚴格等于終點坐標”那幾乎一定會出問題。因為單位移動是離散的每幀前進固定步長最后一幀幾乎不可能正好落在終點上。標準解法是引入“到達半徑”單位與終點距離小于一個閾值比如 6 像素就算到達。另一個造成轉圈的常見原因是尋路網(wǎng)格的粒度與單位的碰撞半徑不匹配。單位碰撞半徑比網(wǎng)格大但尋路按網(wǎng)格中心行走結果就是路徑穿過了“單位實際過不去”的窄縫。這時候要么把碰撞檢測半徑調小要么把尋路網(wǎng)格做膨脹——把所有障礙物的四個方向都向外擴展一格。4.2 大量單位運動時互相穿插重疊的詭異行為網(wǎng)上 RTS 游戲 demo 最拉胯的觀感就是一堆單位像幽靈一樣互相穿過。原因就是完全沒有單位之間的碰撞響應。但如果你直接給所有單位做嚴格物理碰撞又會出現(xiàn)堵車死鎖——前面單位擋路后面單位全部停住。游戲體驗反而不如穿插。我的折衷方案是軟碰撞單位之間檢測到距離過近時不阻止移動而是施加一個橫向的偏移力讓它們自動錯開。這實現(xiàn)起來很像簡易的斥力模型——兩個單位互相靠近時各自向垂直于連線方向偏移一點偏移量跟重疊深度成正比。實測下來單位群在移動時能自然形成松散隊形既不會穿模也不會徹底堵死。當然軍隊在進攻陣型上的移動也可以用編隊行為做得更漂亮但那個系統(tǒng)復雜度會再上一個臺階。我做了一個簡化處理選中的多個單位移動到同一目標點時會自動在目標點周圍按網(wǎng)格排開而不是全部擠在同一個中心坐標上。這個補丁讓整隊的“到達姿態(tài)”立刻自然了很多。4.3 AI 對手的經(jīng)濟崩潰與發(fā)呆循環(huán)AI 最難調的其實不是戰(zhàn)斗力而是經(jīng)濟循環(huán)。初版 AI 經(jīng)常出現(xiàn)這個問題攢夠了 500 塊錢就建精煉廠但精煉廠建完發(fā)現(xiàn)礦區(qū)太遠采完一波要跑很久于是生產(chǎn)鏈就斷了然后 AI 進入一個很呆的死循環(huán)——錢不夠造兵資金逐漸枯竭。排查思路是先把 AI 的決策 log 全部打出來觀察它每一幀到底在干什么決策、資源余額是多少。這一看就發(fā)現(xiàn)了AI 的“擴張”決策優(yōu)先級太高資源稍微多一點就全部拿去建新建筑了導致軍事生產(chǎn)被完全擠掉。修復辦法是給 AI 加入“可負擔判斷閾值”——只有當余額超過某種建筑成本的 1.5 倍時才允許建造而不是剛好夠了就動工這樣預留了同時維持一支小型軍隊的空間。第二個修復是給 AI 加入經(jīng)濟優(yōu)先級維持軍隊在先擴張基地在后只有當軍隊規(guī)模達標并且經(jīng)濟盈余時才會考慮多建一個礦場。調完之后AI 的暴兵節(jié)奏和資源增長明顯更有層次感了。4.4 從報錯到修復一次真實 Bug 的完整排查過程分享一個我最印象深刻的 bug游戲運行幾分鐘后單位開始隨機消失內存占用肉眼可見地飆升。這個 bug 不是立刻出現(xiàn)的它“潛伏”了大概三分鐘才爆發(fā)debug 起來特別痛苦。最初懷疑是內存泄漏檢查 Action 里所有數(shù)組的 push 和 splice 都沒發(fā)現(xiàn)問題。后來我用 Chrome Performance 錄制了一段對局過程發(fā)現(xiàn)內存持續(xù)增長但代碼邏輯里所有創(chuàng)建的對象好像都有對應的清理步驟。最終定位到罪魁禍首是事件監(jiān)聽器泄漏。單位在生產(chǎn)建筑里被創(chuàng)建時會綁定一個“創(chuàng)建完成”的事件監(jiān)聽器但當建筑被敵方摧毀時這個監(jiān)聽器沒有被移除。當時整個游戲里其實同時存在很多已經(jīng)消失的建筑殘留的監(jiān)聽器仍在響應生產(chǎn)事件不斷創(chuàng)建看不到的新單位這些單位占用了坐標但本身就崩了。這里我學到的最重要經(jīng)驗是不要相信 AI 自動生成的事件訂閱/退訂邏輯這種隱式連接的 bug 是最難通過 README 代碼 review 察覺的。后來我在所有建筑和單位的 destroy 函數(shù)里統(tǒng)一加了解綁邏輯并寫了一行注釋提醒自己。另外一個排查技巧是在游戲里臨時加一個 debug 面板實時顯示當前單位數(shù)量、AI 數(shù)量、事件監(jiān)聽器數(shù)量一旦數(shù)值異常增長就知道問題大概出在哪個環(huán)節(jié)了。5. 開源以后社區(qū)反饋和這個項目還能做什么項目放到 GitHub 之后第一周的反饋超出了我的預期。Star 數(shù)漲得比我想象中快得多不少人 Fork 下來跑起來之后提了各式各樣的 issue 和 PR。最讓我高興的是有一個開發(fā)者自己實現(xiàn)了一個“多人聯(lián)機模式”的概念驗證基于 WebSocket 做了一個簡單的房間同步系統(tǒng)。雖然延遲很高、同步機制非常粗糙但它證明了這個項目代碼的可擴展性是真實的——別人不需要了解全部細節(jié)就能在自己需要的方向上延展。這個項目未來的擴展空間其實非常大。我自己心里有幾個已經(jīng)想清楚的規(guī)劃一是引入一套更豐富的兵種傾向和互相克制機制讓戰(zhàn)術縱深更強二是做一套簡單的戰(zhàn)役模式講一個完整的故事流程而不只是一張張隨機地圖三是把整個 AI 策略層做成獨立的可插拔模塊讓社區(qū)開發(fā)者可以提交自己的 AI 邏輯。如果你也想跑一個類似的項目我最后想給的一點核心建議是把 GPT 當結對編程伙伴而不是代碼抄寫員。它會給你一個能跑起來的骨架但真正讓游戲“有魂”的細節(jié)——手感、節(jié)奏、平衡性、意外處理——這些飛躍還是需要你親手一點點調出來的。用 GPT 做這種完整項目最大的樂趣也正在于此它幫你把天花板抬高了三倍而你自己的品味和判斷力決定了最終能飛多高。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
九九综合久久丁香婷婷,开心激情综合网| 日韩高清成人| 婷婷五月天黄色| 激情五月天婷婷直播| 国产毛片欧美毛片久久久| 婷婷五月天中文字幕| 丁香九九九九| 91精品啪| 九九色插| 超碰在线观看三级片| 婷婷激情图片| 91精品久久久久久综合五月天| 色婷婷a v| 国产日韩精品SUV| 99无码视频| 五月天 综合 在线| 丁香色五月 97干| 青青草六月丁香| 丁香婷婷色九月| 亚洲V国产V欧美V久久久久久| 亚洲av综合网| 人妻九九九九| 色婷婷天堂| 九九九九九九九热| 久色五月婷婷综合| 婷婷五月丁香色情| 丁香五月成人在线| 久久人妻情侣| 天天操夜夜肏| 婷婷五月天第四色| 丁香激激情网| 丁香五月婷婷手机| 婷婷五月天激情综合深爱激情| 国产乱妇无乱码大黄AA片| av在线中文| AAAA网站| 天天舔天天爽| 婷婷五月天综合AV| 另类A片| 五月色婷婷综合| 亚洲 在线 性爱 | www.婷婷久久五月天| 五月综合久久| 99热 精品在线| www99热| 久热亚洲| 激情五月婷| 91干视频| 久久久com| 99热只有这里有精品| 97干97色| 五月婷婷高清| 五月四色色| 五月情综合| 婷婷五月蜜桃成人桃色丁香| 亚洲日韩26uuu| 激情五月天综合网站网站网站| 色婷婷97| 亚洲婷婷丁香五月亚洲| 五月婷婷AV| 综合久久人妻| 青草激情综合| 美国少妇性做爰| 婷婷五月丁香五月基地| 丁香五月性爱爱五月| 91综合色噜噜| 99久久精| 激情综合六月| 久久五月天色婷婷| 亚洲五月丁| 亚洲成人电影aaaa| 六月婷婷中文字幕| 性一交一乱一交A片久久四色| 九九AV| 国产精品18久久久| 大香伊人婷婷| 99er这里只有精品| 六月丁香六月婷婷欧美| 色五月综合| 玖玖婷婷五月天| 激情综合婷婷| 日韩在线观看亚洲| 婷婷五月天六月综合| 人人人va亚洲视频在线| 五月丁香婷婷色色| 九九成年视频| 爱性综合网| 国产va在线视频| 五月婷婷五月天亚洲无码| 欧美成人日韩| 免看黄大片AA | 99日热在线视频| 中文字幕性爱视频| 激情婷婷另类| 99综合网| 精品99在线| 久久一热免费视频| 久久丁香五月| .肏屄视频一区二区| 爆乳熟妇一区二区三区爆乳照片| 99热无码| 日产精品一线二线三线芒果| 97操操| 开心五月婷婷激情网| 国产26uuu| 色九九综合| 日韩AV中文在线观看| 日韩淑女人妻luan伦激情精品一区二| 颜射 精品性爱av| 99色在线观看视频| 欧美激情 日韩无码 婷婷 五月天| PORNY九色9l自拍视频成人| 五月婷六月丁香| 五月天婷婷爱| 丁香五月黄色| 激情六月一二| 婷婷丁香五月天综合在线日韩| av激情在线| 五月丁香六月激情综合在线| 这里只有精品视频在线| 激情综合五月| 99色婷婷视频| 激情丁香社区| 亚洲熟女色| 国产精品久久久久9999小说| 五月天婷五月天综合网在线观| 五月丁香啪啪综合| 人人操婷婷| 狠狠操天天操| 人妻中文在线| 亚洲综合激| 国産精品| 久热九九| 五月丁香六月婷| 五月丁香成年黄色| 久久婷婷久久| 五月丁香婷婷成人版| 亚洲精品色色色| 五月丁香六月婷婷啪啪| 欧美va精品va老师va| 天堂中文国产| 五月天综合久久丁香91| 色播五月网| 热99视频精品在线| 丁香婷婷激情网站| 丁香五月激情欧美| www99在线观看视频| 怡红院91a√| 亚洲国产成人裸舞| 色婷婷最新域名| 中文字幕久久一区二区三区| 一起操最新网址| 五月天色综合服务平台| 久婷狼色诱惑在线| 99性爱视频| 九色地址91视频| 五月婷婷六月丁香色| 男同色五月开心五月激情五月| 欧美婷婷色五月| 99综合97| 中文成人在线| 婷婷色在线| 久激情网| xxx综合在线| http:色情日本com| 日韩五月丁香| 五月激情啪啪啪| 久草五月婷婷| 综合久久丁香婷婷,五月婷婷六月丁香,开心激情综合网,六月丁香在线观看,婷婷丁 | 日本激情五月天‘| 亚洲AV无码影院| 五月天色综合| 亚洲国产精品成人免费一区久久久在线观看AAAA | 色婷婷五月天在线观看| 婷婷亚洲天堂| 激情综合网激情五月丁香五月俺也去| 这里只有精品免费| 久久草人妻| 成人视频网| 99热精品一区| 91人操| 色婷婷综合网| 99热国产在线| 91超级碰碰| 九月婷婷| 色香久久| 九九操综合网| 爱操人妻| 97狠狠碰| 亚洲综合色网| 99热天堂| 五月天激情婷婷小说| 97超碰欧美中文字幕| 99自拍视频网站| 99精品这里只有免费视频| 精品人妻在线免费观看| 丁香五月婷婷亚洲综合精品| 婷婷五月中文字幕国产| 六月色色| 五月色情婷婷| 婷婷精品| 伊人婷婷大香蕉| 小视频aaa久久久| 欧美成综合在线观看| 五月天开心色情网| 婷婷五月天色播| 婷婷香香五月| 久久九九中文字幕| 二区成人视频| 国产XXXX搡XXXXX搡麻豆| 亚洲亚洲永久无码777777| AAA久久久| 激情网 久久| 色五月欧美| 五月天婷婷开心| 婷婷激情人妻| 色开心五月婷婷丁香HD| 久久久国产精品黄毛片| 99啪啪| www,天天干| 99无码免费视频| 久久免费试看120秒| 99性爱视频| 夜夜夜夜夜骑撸| 色播丁香五月婷婷操:屄| 亚洲成人无码片| 亚洲综合在线视频| 五月婷色| 99ri视频| www.婷婷亚洲基地| 婷婷五月色综合| 亚洲亚洲永久无码777777| 五月丁香大香蕉| 久久婷婷成人综合色怡春院| 欧美激情五月天在线观看| 热久国产| 精品牛仔裤超碰| 99热人人操人人操| 色五月色开心开心五月| 欧美日本不卡黄色片| 天天干天天插| 九九热超碰| 91丨九色丨43老版熟女| 色色丁香婷婷| 天天婷婷综合亚洲亚洲| 久久五月综合| 狠狠综合网| 色欲久久综合| 婷婷五月天视频| 91AV婷婷| 思思热这里只有精品| 欧洲综合视频| 99这里是99在线视频| 一月婷婷色色| 日韩欧美五月丁综合| 五月丁香婷婷综合久久| 九九AV| 天天搡日日搡aaaaⅩ| 91av视频在线观看最新网址| 一二区成人电影| 伊人大香蕉综合在线| 亚洲六月色| 青青草青青草五月天| 欧美精品XXXXBBBB| 夜色.cnm| 97色色色| 4399在线观看免费高清电视剧| 亚洲区视频| 欧美日韩91| 五月婷婷中文字幕| 日本人妻伦在线中文字幕| 中文字幕无码人妻少妇免费视频| 久777| 亚洲成人精品三区| 激情丁香九九五月综合网| 婷婷五月综激情| 久热 91| 丁香五月亚洲激情婷婷射| 丁香婷婷激情综合五月激情| 亚洲 小说 欧美 激情 另类| 99视频这里有精品| 五月丁香婷婷综合网| 538在线精品| 五月天丁香久久综合 | 免费国产视频| 香蕉久久国产AV一区二区| 中文毛片无遮挡高潮免费| 99超碰欧美| 激情熟女网| 久操操| 五月激情精品视频| 丁婷婷五月天在线播放| 婷婷亚洲综合| 吾爱AV导航| 久热中文字幕| 人妻VideOssS人妻高清| 五月激情小说网| 思思re最新视频| 久久综合五月婷婷| 亚洲视频丁香网va| 99热久草| 影音先锋AV资源男人站| 久久丝丝热| 偷拍视频五月天| 丁香五月婷婷AV在线| 色五月综合网| 人妻五月天激情开心网| 国产一级婬片毛片| 婷婷五月六月丁香| 五月天激情综合首页| www.五月婷婷.com| jiZZdr| 欧美交换配乱吟粗大25P| 9 大屁股在线视频精品| 五月天婷婷激情小说| 色99网站| 嫩草极品| 五月丁香在线视频观看| 亚州操操| 一区二区三区XXXXXX| 九九爱这里只有精品| 色婷婷成人| 大香蕉手机视频| 正宗黄色毛片| 99久久久| 狠狠色噜噜狠| www色婷婷久久综合久色| 天天插综合网| 丁香婷婷久久五月天| 99热精品在线观看| 99在线热| 超碰二区| 99热成人| 青青草Avb在线| 噜噜噜噜噜日本视频| WWW.桔色成人.COM| 91婷婷在线观看| 米奇影视资源婷婷狠狠色激情欧美五月丁香 | 五月天社区婷婷| 丁香五月在线伊人| 色五月婷婷在线| 婷婷玖玖五月天| 日日操人人操| 超碰cap| 狠狠五月激情在线| 俺去也婷婷| 91精产品自偷自偷综合| 五月天婷婷久久| 久久密臀婷婷| 天天操屄网| 婷婷色影音天| 99亚洲色色| 亚洲狠狠爱婷婷| 538久久| 伊人五月天| www.99视频| 99riAv1国产在线观看| 亚洲成人av在线观看| 开心五月婷| 深夜婷婷 丁香| 日韩无码人妻一区二区三区综合 | 国产精品91抖高| 五月丁香综合久久| 激情综合网婷婷五夜| 26UUU精品一区二区Com| 思思热99er| 五月婷婷丁香综合| 久久亚洲天堂| 久久久999精品| 久久网日本| 无码人妻激情| 欧美va国产va| 亚韩精品视频1区| 亚洲国产va| 日韩无码亚欧无码| 激情四射网| 日韩高清成人| 广东99色在线| www.99操.com| 婷婷五月AV| 婷婷色丁香五月| 亚洲五月婷| 在线日韩视频| 五月停性愛| www.激情五月天| 九九热99精品| 思思热这里只有精品| 色色影院aaaav| 国产精品久久久久9999小说| 欧美丁香婷婷五月天| 五月婷色丁香| 伊人婷婷五月天| 97色五月天| 色情激情五月婷婷| 成人丁香五月| 丁香五月综合网亚洲综合欧美狠狠| 欧美精品久| 九九精品99| 色婷婷在线视频久| www.yw色| 超碰亚洲欧美| 欧美精品99| 99ER热精品视频| 五月天精品视频| 日本久久视频| 婷婷不干网| 综合在线色婷婷| 99色热| 怎么样可以看免费的一级av| 婷婷五月天激情网| 日日爽天天| 超碰在线观看99| 影音先锋91在线资源站| 婷婷综合五月| 六月激情综合| 色色婷婷综合网| 九九99热| 婷婷五月天大香蕉在线视频观看| 丁香六月婷婷色XXXXX| 日日做夜夜爱| 日操| 色综合久久天天综合网| 97涩婷婷婷婷基地| 日本人妻伦在线中文字幕| 99久久网站| 激情伍月 欧美| 超碰高清在线| 亚洲啪啪自拍| 亚洲字幕AV一区二区三区四区| 91九色欧美| 天天爽人人爽| 六月婷婷之青青草| 久热大香蕉| 五月婷婷婷| 26uuuavcom| 亚洲婷婷在线播放十月| 大香蕉五月天婷婷丁香91| 级人人91| 91人久| 亚洲婷婷五月天| 丁香五月情| 停停五月丁香| 毛片毛片毛片毛片| 久久草婷婷丁香网站| 精品视频这里只有精品| 91久久婷婷| 丁香五月情| 午夜九九九九九九| 丁香花五月天社区| 野外99热| 欧美丁香五月| 五月婷婷丁香啪啪| 玖玖婷婷综合| 大香蕉久久久| AV在线大香蕉| 九九热精品| 在线另类视频| 久久新地址| 超碰色婷婷| 五月亭亭欧美女人| 色婷婷国产精品综合在线观看| 丁J香六月首页| 五月天婷婷网站| 五月综合人妻| 九九伦子片| 熟妇天天综合| 丁香五月网| 五月婷婷六月丁香首页| 91精品91久久久中77777久久玖玖九九| 色爱综合五月| 猫咪伊人久久| 99热欧美在线观看| 天天网站天天爽| 婷婷热婷婷色| 五月婷婷开心综合| 五月丁香六月婷婷色日| 婷婷六月色开| 成人综合网站| 久久天堂女人| 五月综合丁香婷婷| 久久久久久草黄色片AV在线观看| 五月婷婷色播网| 亚洲AV无码久久精品色欲| 激情五月婷婷综合视频| 天天天天天天操| 91久久九久久九久久九久久九久久| 99玖玖在线视频| 五月丁香综合| 97在线观视频免费观看| 婷婷综合在线视频| 日韩九九视频| 蜜臀嫩草| 日本美女上人| 国产精产国品一二三在观看| 色婷婷AⅤ| 99啪啪视频| 五月天激情在线视频| 婷婷激情丁五月| 日本色色视频| 99这里有精品| 五月色丁香婷婷综合| 九九色之九九色之88| 久/久精品99看9| 天天干狠狠操| 国产精品爽爽久久久久久| 国产无套精品一区二区| 影音先锋男士资源网一区| 成人网在线视频| 五月天激情综合网站| www.俺去也com| 色五月五月婷婷| 精品人妻伦九区久久AAA片| 亚洲无码猫咪| www.激情五月天.com| 狠狠操性爱av| 日韩操人| 玖玖婷婷婷丁香五月| 色欲婷婷夜夜| 婷婷99狠狠| 欧美搡BBBBB摔BBBBB| 人人草碰| 五月丁香婷中文字幕| 五月天婷婷AV| 日本波多野结衣视频| 婷婷五月亚洲综合| 六月综合在线| 国产AV影片| 日日干天天射| 人人摸人人澡人人| 青吴乐视频| 男人的天堂999| 天天日日夜夜| 日韩成人电泉AV| 色婷婷精品小视频| a网站免费观看| 日韩AV在线电影| www.狠狠色.com| 91丨九色丨国产打屁股| 色综合丁香婷婷| 九九色综合视频| 俺也去色| 婷婷基地成人五月天| 91久久色| 91婷婷五月丁香碰| 亚洲综合色色| 丁香五月天堂亚洲社区| 蜜臀九九九九| 九九视频在线观看视频6 | 久久激情综合| 91在线日| www色五月| 精品久久这里热66| 久久久精品99| 激情综合五月开心狠狠| 中文字幕成人日韩| 亚洲色婷婷五月| 国产一二区爆乳_1国产日韩一区二区三-成人AV| 婷婷色五月丁香六月欧美啪| 狼友视频在线观看18| 99视频在线观看视频| 婷婷五月偷拍| 九九综合九色欧美狠狠| 色婷婷狠狠色| 国内精品免费一区二区2009| 五月天激情图| 久99久视频精品| 婷婷五月天视频小说| 五月丁香婷婷综合| 丁香花五月天| 九九色婷婷五月天| 久久精品视频9| 最近中文字幕2019视频1| 丁香五月婷婷亚洲综合精品在线| 中文字幕在线免费看线人| 亚洲中文无码成人| 色吧婷婷五月亚洲| 99精品福利视频| 香蕉中文在线| 日本高清久| 日本三级日本三级三级人妇四虎| 亚洲午夜av| 色五月婷婷中文字幕在线观看| 五月婷婷色色| 99热这是里只有精品| 五月丁香在线| 思思久久青草热| 婷婷丁香大香蕉| 久草五月天| 香蕉大综综综合久久| 大香蕉啪啪| 色色色色热热| 日韩在线视频9色| 五月天婷婷在线观看| 国产av影片| 五月丁香婷婷综合网| 丁香开心深爱| 婷婷亚洲久久| 色屌丝中文字幕| 夜夜骑日日夜夜| 99视频在线看| 五月天婷婷在线播放| 六月丁香深深爱| 婷婷WWW久久| 欧美综合123区| 色色色视频免费无码 | 中文在线视频久9| 激情五月天综合网| 千人斩操逼| 天花AV无码| 五月婷丁香| 婷婷狠狠五月综合| 精品久久久999| 欧美精品XXXXBBBB| 色五月成人| 99热99在线| 欧美日本不卡黄色片| 99资源在线视频| 婷婷免费成人视频| 久久久婷婷五月亚洲97号色| 成人国产欧美大片一区| 久久 天天| 五月丁香六月激情综合啪啪| 六月丁香婷婷色狠狠久久| 天天天天干| 丁香午夜天| 激情无码五月天| 99ri国产精品| 人妻丰满精品一区二区A片| 亚洲欧美丁香五月天亚洲欧美| 婷婷在线观看五月天在线视频| 九一九九黄色| 一本道在线电影| 九九热99免费视频| 五月婷婷丁香在线| 夜夜噜夜夜奇| 99免费综合网| 丁香 久久| www久久久久久久久久久久久久久久久| 婷婷五月综合在线| 综合网亚洲| 五月天伊人日日噜影片AV| 欧洲亚洲免费视频9| 九九中文色色| 日韩AV中文在线观看| 色中色综合| 中文AV在线观看| 99在线精品视频免费观看20| 五月色婷婷AV| 99热国内| 激情涩涩网| 亚洲中文字幕网| 色情婷| 在线色婷婷| 三级毛片视频| 国产亚洲精品久久久久久牛牛| 99热99干| 婷婷久久五月天丁香| 可以直接看的av| 五月婷婷丁香综合| 思思热在线视频99| 丁香婷婷久久老熟女综合网| 五月天激情网图片 - 百度| 婷婷九月| 天天综合情| 久久色天堂| 九九自拍网| 99人人干人人| 精品久久久999| 色吧婷婷| 97操碰碰无码视频| 五月婷婷丁香综合| 丁香五月婷婷啪啪| 亚洲性天天| 久久精品性爱视频,| 天天做天天爱天天搞| 婷婷香香五月| 狠狠色狠狠干| 婷婷丁香五月久久| 激情都市五月天| 久热中文字幕在线线观看| 亚洲婷婷丁香五月视频| 伊人五月天婷婷| 人妻精品久久久久久久| 九九色综合九九色| 九九99香蕉在线视频播放| 色五月综合| 日本久久婷| 久久五月天综合| 色婷五月| 天天日色情| 婷婷97C| 老妇操B| 人妻熟妇国产精品| 狠色狠色狠狠色综合网| 婷婷亚洲在线| 五月丁香婷婷综合网| 九九热在线观看视频| 人。妻久久| 翔田千里 50岁 无码| 日韩性视频| 九九碰九九爱97| 熟女少妇内射日韩亚洲| 日日噜噜久久婷婷五月天| 免费AV在线网址| 中文字幕不卡+婷婷五月| 婷婷丁香五月天婷婷| 另类综合激情| 亚洲综合激情五月久久| 五月丁香无码| AA片在线观看视频在线播放| 亚洲AV成人在线观看| 91无码高清| 亚洲黄色影视| 乱色色色| 四虎成人精品永久免费AV九九| 色婷视频| www99精品亚| 91久久久久久久久| 天天日,夜夜爽| 激情六月天婷婷| 丁香婷婷五月| 九色成人AV在线| 色婷婷婷婷| 激情欧美婷五月| 五月婷婷综合丁香视频| www.99热这里只有精品| 97伦色婷婷| 五月婷婷激情网| 丁香五月欧美激情| 超碰在线人妻| 6 9式性爱视频在线播放| 91久久综合亚洲噜噜成人在线| 亚洲丁香婷婷五月天综合色| 综合激情站| 婷婷五月六月| 久草热8精品视频在线观看 | 五月花婷婷丁香| 激情丁香五月天| 成人AV在线电影| 超碰97色| 五月丁香六月婷综合成人综合| 色综合天堂| 婷婷狠狠香蕉综合| 欧美五月丁香在线| www.久久综合| 91九色白丝| 99热这里只有精品国产免费| 五月天婷婷色| 91丁香色五月| 五月天亚洲最大成人| 六月婷婷激情| 激情综合婷婷久久| 亚洲夜夜操| 久久丁香| 九九国产视频| www.婷婷.com| 久久免费试看120秒| 第四色婷婷最爱| 婷婷亚洲综合| 中文精品在| 激情五月色婷婷| 91九九热| 思思精品热在线| 伊人高清无码| 26uuu国产精品| 九九热这里只有精品6| 99热国内精品| 天天爽天天干| 丁香五月天天| 五月天综合图片| www天堂99| 丁香狠狠| 亚洲乱码日产精品BD| 大香蕉综合| 日韩一级片| 大香蕉狼人久久| 六九色综合婷婷五月天| 99视频热99| 99九九久久| 九九这里是免费的视频5| 大香人妻| 激情综合五| 色情五月天导航| 国产偷人妻精品一区| 99福利视频导航| 五月天停停成人网| 婷婷操无码| 久久这里只有欧美| 大香蕉懂9| 久婷五月| 九色视频91| 激情五月深爱五月| 国产午夜精品久久久观看| av一区二区电影免费在线观看| 婷婷五月情天| 吊色AV男人的天堂| 91久久久久久久久18| 这里只有精品免费在线视频| 亚洲激情久久| 97韩国久久电影院| 麻豆精品| 五月丁香激情综合网| 99久久精彩视频。| www.99视频| 综合狠狠干| 日韩无码色色| 九九九九中文字幕| 99热日韩| aaa丁香五月天| 在线中文AV| 色情综合网| 香蕉久久六月| 色综合天天综合成人网| 五月天婷婷丁香花| 亚洲超碰在线| 天天干-天天日| 99热999| 色情五月婷| se色99| 色99久草在线| 日韩啪| 欧美噜噜免费观看| 婷婷六月天国产综合| 婷婷天天日婷婷| 91精品丝袜久久久久久| 激情久久久| 五月婷婷 激情五月| 日韩av在线免费观看| 91丨九色丨大屁股| 久久婷婷丁香六月天| 亚洲性视频| 99视频在线| 色情五月停停丁香| 五月婷婷99热| 久久3级片| 婷婷午夜| 六月色丁香中文字幕| 最新av在线观看| 少妇AB又爽又紧无码网站| 看片视频在线免费日产在线看| 四色永久成人网站| 亚洲啪啪自拍| 99色精品| 五月天婷婷基地| 综合五月天亚洲婷婷| 婷婷五月综合啪| 成人va在线观看视频| 色五月色情| 99九九精品| 婷婷五月丁香基地| 人人舔人人色人人高潮| 中文字幕丰满人妻无码专区| 婷婷丁香色五月天| 97婷婷色| 亚洲情欲| 五月婷婷久久激情 | 五月丁香六月综合激情无码软件亮点| 91精品久久久久久| 丁香婷婷午夜| 熟妇内谢69XXXXXA片| 五月婷中文字幕| 五月天婷婷视频| 激情小说五月丁香在线视频观看视频| 99久久五月丁香野外| 97精品人人A片免费看| 成人视频一区| 激情五月天小说| 久久精品小视频| 97欧美在线| 67194线路二在线观看| 久久xxxx| 色五月天激情| 另类图片激情五月| 思思热在线播放| 婷婷娱乐丁香综合网| 五月丁香久久精品在线观看| 五月久熟女| 艳妇野外情欲放荡HD| 久久伊人大香蕉| 五月婷婷激情久久| 五月天婷婷綜合院| 激情六月天| 色五月在线视频观看| 国产色五月婷婷| 久久狠色噜噜狠狠狠狠97| 婷香五月网在线| 五月婷在线影院| 婷婷综合亚洲| www久久久久久久97| 丁香五月天天| 小色小蛇伊人婷婷色香五月| 色综合色色色色色色综合| 在线超碰免费| 精品人妻一区| 久色资源| 久久激情综合| 天天人人天天爽| 欧美天天综合网站上去吧| 国产xxxxx在线观看| 人妻爽爽爽久久久久久久久| 色碰碰视频| 99无码视频| 99精品自拍| 99成人网一区| 丁香五月婷婷六月婷| 亚洲 日韩色色| 能看的AV网站| 色五月丁香婷婷综合| 九九色99| 丁香六月无码| 日本婷婷五月天| 这里只有精彩视| 婷婷丁香五月综合网上 | 日韩xx在线| 五月丁香六月成人| 日韩一级A片黄色| 思思热久久阴99| 开心深爱五月天| 这里只有精品视频一区| 丁香五月婷婷乱| 伊人网色婷婷五月天| 激情丁香图片| 激情久久丁香| 久久久免费精彩视频| 九九黄色网| 综合色、色综合| 久久丁香| 激情五月婷婷色色| 亚洲在线操| 久色视频在线| 五月久久丁香| 久色大| 99久热| 国产精品18久久久| 日B日潘金莲BB| 九九十99视频| 色八月婷婷| 亚洲色情网站| 女同激情久久av久久| JAPANRCEP老熟妇乱子伦视频 | 成人av在线网址| 午夜婷婷| 色综合色综合色综合| 色婷婷亚洲| 伊人五月人妻精品| 99在线视频免费| 精品久热69| 色色国产| 婷婷九月狠狠色| 九九蜜臀精品| 日日干天天| 99视频精品在线| 秋霞网在线免费基地五月婷婷丁香| YJLZZJLZZ亚洲乱熟无码| www.minyis.com【JT】实力收量可预付TG@LXSPSW8 | VA国产在线综合网站| 日婷婷| 五月婷婷啪啪| 久热婷婷在线视频| www。五月天。com| 免费视频无码| 久久婷婷综合五月| 欧洲不卡视频| 深爱激情丁香五月| 99热综合| 日熟女| 色五月亚洲开心网| 色婷婷97| 免费啪啪啪网站| 丁香婷婷久久激情| 六月婷婷色色色| 丁香五月亚洲综合丝袜| 色香蕉影院| 婷香五月激情视频| 久久人妻超碰一区| 丁香大香蕉| 欧洲色| 精品少妇人妻AV无码专区偷人| 天天射美女| www.夜夜操.com| 精品一二三区久久AAA片| 色五月激情综合网| 五月天激情亚洲| AA片在线观看视频在线播放| 亚洲午夜av| 99re这里只有精品视频了| 国产69久久久欧美黑人A片| 99热销国产这里有精品| 激情五月天激情综合网| 精品国产乱码久久久久久免费| 婷婷综合精品| 婷婷久月| 色9999综合久久| 综合网五月天123| 五月婷婷综合网| 色六月婷婷| 五月丁香影院| 狠狠久久婷婷| 日韩a热| 99热日本| 狠狠色婷婷在线| 99热播放| 色伊人婷婷| 99九九精品视频| 激情五月天婷婷色色色色色色色色色色色 | 五月天精品| 色色色色五月天| 日本久久天堂| 99亚洲精品视频| 在线观看亚洲AV| 久婷婷五月综合欧美| 欧美成人网99网| 亚洲视频在线网| 五月激情综| 伊人大香蕉爱聚| 激情网综合| 五月综合激情久久| 激情色情五月天| 99干在线视频| 婷婷激情六月天视频| 婷婷色狠狠| 天天久| 超碰在线观看caop| 六月婷婷五月丁香| 九九偷拍网| 98色花堂98t.R| 色v综合网| 免费亚洲婷婷中文字幕| AV在线观看网站| 五月天色五月| 色婷婷狠狠干| www.97视频| 新激情五月开心五月婷婷五月丁香五月| 国产日产亚系列精品版优势| 丁香婷婷色五月合集| 久久丁香婷| 九九热视频在线观看| 91传媒无码人妻精| 亚洲无码yw| 色五月xxx| 狠狠精品干练久久久无码中文字幕| 激情婷婷狠狠干| 日韩AV一区二区三区| 色噜噜狠噜噜视频| 丁香色色网| 香蕉AV777XXX色综合一区| 五月丁香婷婷伊人| 91 原创 在线 九色| 婷婷五月天中文字幕| 久久久久8888| 久热免费视频| 战争与艾拉电影免费观看| www91精品| 五月丁香啪啪网| 午夜不卡成人一区二区| 日本在线wwww| 六月婷婷中文字幕| 深爱五月中文字幕| 婷婷色片| 人人操av| 色综合久久88色综合天天99| 五月婷婷色| 日日操夜夜操不卡| 色五月天激情| 五月色精品| 五月天婷婷网站888| 国产亚洲成AV人片在线观黄桃| 99视频在线精品免费观看2| 久久99久久99久久99人受| 国产麻豆视频| 婷婷五月亚洲综合| 中文字幕 久久9999| 另类亚洲2| 成人免费超碰| 五月婷视频| 亚洲精品婷婷| 中文字幕婷婷五月天| 日韩大片艹艹| 亚洲精品一区中文字幕乱码| 婷婷丁香色无五月| 色婷婷XXXXX| 中文字幕不卡视频| 国产FREESEXVIDEOS性中国| AV操操操| 六月伊人婷婷| 人人爽欧美婷婷久久久五月丁香| 色婷婷亚洲婷婷| 五月丁香婷婷婷激情爱爱| 婷婷99中文字幕| 日韩AV免费| 国产真实乱了老女人视频 | 一二线视频 另类| 亚洲综合九九| 日韩精品二三区| 性 色 婷婷| 丁香五月婷婷基地| 色亭亭九月| 亚洲视频在线观看| 激情综合亚洲| 色色射| 婷婷五月色网| 亚洲婷婷月丁香五月| 婷婷六月视频| 久久免费试看120秒| 操操操B| 99久久极情精品一区| 久久婷婷五月天| www.亭亭五月天| 五月天国产成人| 超碰成人在线观看| 99色在线观看视频| 日本人妻伦在线中文字幕 | 五月天色婷婷小说| 丁香五月天导航| 中文无码婷婷| 97碰碰人人视频| 尤物一区二区| 日韩免费视频| 开心激情站| 99无码视频| 日韩啪| 久操激情| 综合网天天| 四色99久久| 色五月婷婷色五月婷婷色五月婷婷| 色综合久久88色综合天天人守婷| 天天肏屄夜夜爽| 丁香五月婷婷深爱综合激情| 人人性久久| 欧美色色色色色色色色色色| 五月丁香综合中文| 丁香深五月婷婷| 婷婷丁香日韩五月| 51精品国自产在线| 久久99最新地址| 丁香性爱在线视频| 91丨九色丨国产| 性一交一乱一交A片久久四色| 婷婷四色成人综合色视| 996er在线观看| 日操| 日本在线视频手机播放五月婷| 亚洲激情在线| 欧美婷婷六月丁香综合色连续高潮抽搐| 九九国产视频| 五月婷婷另类| 色五月丁香五月五月婷婷| 玖玖在线资源视频| Av性爱网站| 99热日本| 亚洲欧美999| 色小说五月婷婷| 久热这里只有精品99re,久热这里只有精品7| 国产精品-第3页-91JQ就要激情网91JQ5.JQJQ926.XYZ | 婷婷色天香| 思思久久思思| www.五月天。com| 操人妻视频91| 久久丁香综合| 99视频35精品视频在线观看| 久久丁香五月婷婷| 激情开心五月天| 玖玖99婷婷| 91日综合欧美| 色玖玖综合网| 亚洲成人色五月婷婷综合| 日韩一66精品| 婷婷丁香色无五月| 久久92| 性热视频99精品| 亚洲综合五月天| 色婷婷六月| WWW·色色色·COM| 97人妻碰碰碰久| 丁香五月婷婷精品视频| 婷婷五月情| 91操片| 成人精品视频99在线观看免费| av一区二区电影免费在线观看| 狠狠爱婷婷| 亚洲小视频免费观看| 五月婷婷激情综合拍| 日韩在线99| 九九99久久| 国产亚洲AV人片在线| 丁香婷婷色九月| 伊人激情综合网| 色情激情五月| 91丨九色丨熟女|老版| 99网| 五月丁香亭亭AV女优| 色综合网上班开心婷婷久久| 人人视频色| 五月天综合激情网| 思思热视频在线| 久久9热综合| 国产夫妻操逼内射视频| 欧美婷婷色五月| 99精品热| 高清国产一级婬片a免费| 丁香婷婷五月天网站| 婷婷五月天另类网站| 91九色网| 日韩久久欧亚| 这里都是精品99| 丁香五月六月婷婷综合| 亚洲精品又粗又大又爽A片| 亚洲色图五月丁香| 天天干天天日日| 玖玖综合色| 亚洲性爱AV| 九月综合| 激情六月一二| 精国产品一区二区三区A片| 超碰a女人的天堂| 99精品视频在线| 日韩啊啊啊| 五月天丁香成人社| 久热网在线视频| 99精品网| 曰曰久久| 色五月婷婷一二| 激情性爱五月天| 天堂久久大香蕉| 第四色婷婷五月| 色婷婷九月| 天天se在线视频| www.开心激情| 亚洲色无码A片一区二区麻豆| 91精品久久久久久77777| 婷婷丁香激情综合色情| 日韩性爱AV| 成人五月天色天堂| 99热精品在线观看| 在线99精品| 五月天婷婷婷| 操日本99| 99re热久久| 九九在线精点品| 中文字幕av久久爽一区| 亚洲综合色网| 五月婷婷,六月婷婷| 久久这里只有精品无码| 激情婷婷丁香| 欧美va精品va老师va| 99无码视频| 激情综合99| 日本色色网站| 婷婷五月,偷窥偷拍网| 99热精品在线免费观看| 免费黄网不卡AV| 99热这里只有精品69| 欧美搡BBBBB摔BBBBB| 另类图片五月天婷婷| 丁香婷婷基地| 亚洲区,视频区,视频区免费| 色五月综合激情| 丁香五月天网站| 狼友超碰| 美欧日韩国产成人在战| 啪啪婷婷五月天激情| 久综合| 9久热在线视频精品| 97精品欧美91久久久久久久| 天天色播| 性色播|