日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满av-国产精品中文字幕免费观看-亚洲成人久久一区二区三区-国内少妇偷人精品视频无缓冲-一区二区国产精品日本一区二区三区在线网

ARTICLE DETAIL

資訊詳情

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

J2ME雷霆戰(zhàn)機源碼:功能機飛行射擊主循環(huán)、對象池與真機適配

J2ME雷霆戰(zhàn)機源碼:功能機飛行射擊主循環(huán)、對象池與真機適配 簡介JAVA ME 經(jīng)典飛行射擊游戲《9688雷霆戰(zhàn)機》的個人移植源碼包面向希望從實戰(zhàn)代碼理解 J2ME/MIDP 移動游戲開發(fā)的入門與進階學(xué)習(xí)者。內(nèi)容圍繞 MIDlet 主類入口、GameLoop 游戲循環(huán)、飛機/敵機/子彈對象模型、碰撞檢測與狀態(tài)機管理展開并涉及 Canvas 繪圖、鍵盤或觸摸事件響應(yīng)、圖像預(yù)加載及音頻播放等環(huán)節(jié)可幫助讀者建立較完整的小型移動游戲框架認(rèn)知。壓縮包約 4.4MB文件總數(shù)顯示為 0、類型明細(xì)暫未提供源碼與工具屬性較明確包體以完整工程移植內(nèi)容為主。已有 1139 人學(xué)習(xí)或下載說明其在同類 J2ME 學(xué)習(xí)材料中有一定參考熱度。通過閱讀和調(diào)試這套移植代碼讀者可揣摩幀率控制、內(nèi)存分配與資源緩存等受限設(shè)備上的優(yōu)化思路也能練習(xí)代碼閱讀、問題定位和模塊拆解方法適合作為課程設(shè)計或個人練手的對照樣本。1. 一臺舊功能機里的飛行射擊這套 J2ME 雷霆戰(zhàn)機源碼在跑什么手里那臺 240×320 的舊按鍵機還能開機但能裝進去的游戲已經(jīng)不多了。這份個人移植的 J2ME 雷霆戰(zhàn)機源碼做的事就是讓一臺 Java ME 功能機重新跑起完整的豎版飛行射擊——飛機左右穿梭、子彈成排往外噴、敵機一波接一波分?jǐn)?shù)寫進 RMS關(guān)機再開還在。整套工程不依賴任何第三方游戲引擎全靠 MIDP 自帶的 Canvas、GameAPI、RMS 和 Media API 拼起來用老式的 J2ME 開發(fā)工具包WTK導(dǎo)入就能編出 JAR。它適合三類人手里有舊機器想復(fù)刻點東西的、想看清 J2ME 游戲主循環(huán)到底怎么寫的、以及接手了一個老 JAR 要做二次開發(fā)的。代碼量不大但結(jié)構(gòu)完整從 MIDlet 生命周期到子彈對象池回收都留著清晰的切口改起來不用翻半天。2. 工程骨架與目錄結(jié)構(gòu)MIDlet 入口、Canvas 主循環(huán)和資源怎么擺先看骨架。J2ME 項目和普通 Java 工程最大的差別在于它必須有一個明確的「應(yīng)用入口」和一份聲明式的描述文件打包器靠這兩樣?xùn)|西才能把一堆 class 變成一個能裝進手機的 JAR。2.1 一份能直接導(dǎo)入 WTK 的目錄長什么樣這套源碼的目錄是標(biāo)準(zhǔn)的老式 J2ME 布局沒有 Maven 也沒有 Gradle純靠 IDE 的工程描述和 Ant 腳本src/ com/game/midlet/GameMIDlet.java MIDlet 入口管生命周期 com/game/core/GameCanvas.java 主循環(huán)、按鍵、繪制 com/game/core/Entity.java 實體基類坐標(biāo)/速度/半徑 com/game/core/BulletPool.java 子彈對象池 com/game/core/EnemyManager.java 敵機波次調(diào)度 com/game/core/ScoreStore.java RMS 最高分 com/game/core/Res.java 圖片資源統(tǒng)一加載與緩存 res/ player.png enemy.png bullet.png bg.png bgm.mid shoot.wav META-INF/MANIFEST.MF Game.jad build.xmlsrc下面按職責(zé)分了 midlet 和 core 兩個包這個分層對 J2ME 來說已經(jīng)夠用了。res里的圖片必須是 PNG這是 MIDP 規(guī)范里唯一被強制支持的位圖格式別指望塞 JPG 進去。Game.jad是 Java 應(yīng)用描述文件很多機型在安裝時會先讀 JAD 再決定要不要下載 JAR里面的字段和 MANIFEST 必須對得上。2.2 MIDlet 生命周期startApp 里只做一件事入口類承擔(dān)的工作比想象中少。J2ME 的 MIDlet 有startApp、pauseApp、destroyApp三個狀態(tài)回調(diào)最容易踩的坑是把資源加載和線程啟動都堆在startApp里結(jié)果用戶按了掛機鍵再切回來第二份線程就起來了畫面越跑越快。import javax.microedition.midlet.MIDlet; import javax.microedition.midlet.MIDletStateChangeException; import javax.microedition.lcdui.Display; public class GameMIDlet extends MIDlet { private GameCanvas canvas; private Display display; protected void startApp() throws MIDletStateChangeException { if (canvas null) { display Display.getDisplay(this); Res.loadAll(); // 素材只在這里加載一次全部進靜態(tài)緩存 canvas new GameCanvas(this); canvas.startLoop(); // 主循環(huán)線程跟著 Canvas 走 } display.setCurrent(canvas); // 切回來只是重新設(shè)為當(dāng)前屏幕 } protected void pauseApp() { if (canvas ! null) canvas.pauseLoop(); // 掛機就停線程省電 } protected void destroyApp(boolean unconditional) { if (canvas ! null) canvas.stopLoop(); } public void exit() { // 游戲內(nèi)菜單調(diào)用 destroyApp(true); notifyDestroyed(); } }startApp里用canvas null做了一次性判斷這是整套代碼里最值錢的一行。J2ME 設(shè)備在來電、切換后臺、開蓋合蓋時都會反復(fù)觸發(fā)startApp和pauseApp如果不做這個判斷每次切回來就是一個新 Canvas 加一個新線程內(nèi)存和幀率一起崩。pauseLoop只是把running標(biāo)志置 false 并讓線程自然退出循環(huán)不調(diào)Thread.stop()——那個方法在 CLDC 上行為不確定屬于血淚經(jīng)驗。參數(shù)上notifyDestroyed()是告訴運行環(huán)境「我自己要退了」必須主動調(diào)否則部分機型會認(rèn)為應(yīng)用異常退出并彈提示。Res.loadAll()放在 Canvas 創(chuàng)建之前保證第一幀繪制時所有Image都已經(jīng)就位避免第一幀出現(xiàn)空指針。2.3 JAD 與 MANIFEST 里的關(guān)鍵字段JAR 裝不上手機八成是這兩個文件的問題。核心字段就這幾個MIDlet-Name: ThunderShooter MIDlet-Version: 1.0.0 MIDlet-Vendor: Personal MIDlet-1: Thunder, /player.png, com.game.midlet.GameMIDlet MicroEdition-Configuration: CLDC-1.1 MicroEdition-Profile: MIDP-2.0MIDlet-1的格式是「顯示名, 圖標(biāo)路徑, 入口類全名」三段用英文逗號加空格分隔少一個空格某些機型就解析失敗。MicroEdition-Configuration和MicroEdition-Profile直接決定了這臺機器愿不愿意裝你的包寫 CLDC-1.1 意味著放棄 CLDC-1.0 的老機器寫 CLDC-1.0 則用不了浮點和部分集合 API。這套源碼選了 CLDC-1.1 MIDP-2.0是個務(wù)實的取舍——覆蓋不了最早那批單色機但換來了Image.createRGBImage和Manager這些必備能力。# 老式 WTK 的標(biāo)準(zhǔn)打包流程三步缺一不可 javac -bootclasspath $WTK/lib/cldcapi11.jar:$WTK/lib/midpapi20.jar \ -d classes $(find src -name *.java) $WTK/bin/preverify -classpath $WTK/lib/cldcapi11.jar:$WTK/lib/midpapi20.jar -d classes classes jar cfm ThunderShooter.jar META-INF/MANIFEST.MF -C classes . -C res .preverify這一步是 J2ME 獨有的它在每個 class 里插入棧映射信息供設(shè)備上的 KVM 做字節(jié)碼校驗。跳過它模擬器可能照跑真機上直接報校驗錯誤。構(gòu)建腳本里把它寫成 Ant 的一個exectarget 就行別手動敲命令太長容易漏 classpath。3. 核心玩法拆解從主循環(huán)到子彈與敵機的碰撞判定骨架搭好之后真正決定手感的是主循環(huán)和實體管理。這部分代碼不多但每一處都能直接換成「卡不卡」和「判定準(zhǔn)不準(zhǔn)」。3.1 幀循環(huán)里的 update 與 draw 分離J2ME 沒有游戲引擎的requestAnimationFrame最穩(wěn)的做法是自建線程加固定步長。這套代碼把邏輯更新和繪制徹底分開update只改數(shù)據(jù)paint只讀數(shù)據(jù)中間不互相調(diào)用。public class GameCanvas extends Canvas implements Runnable { private static final int FRAME_MS 40; // 25 FPS功能機的舒適區(qū) private volatile boolean running false; private Thread loopThread; private long lastTick; public void startLoop() { if (running) return; running true; lastTick System.currentTimeMillis(); loopThread new Thread(this); loopThread.start(); } public void pauseLoop() { running false; } public void run() { while (running) { long now System.currentTimeMillis(); int delta (int) (now - lastTick); if (delta FRAME_MS) { try { Thread.sleep(FRAME_MS - delta); } catch (InterruptedException e) { } continue; } lastTick now; update(delta); repaint(); serviceRepaints(); // 立刻刷別讓重繪消息在事件隊列里排隊 } } }FRAME_MS 40對應(yīng) 25 幀這是老機器的甜點值。往 30 幀調(diào)33ms不是不行但繪制一幀如果超時System.currentTimeMillis()的差值會越滾越大表現(xiàn)為「走兩步卡一下」。差值累積的處理方式是不補幀直接把lastTick重置到當(dāng)前時間寧可掉幀也不讓邏輯跳步。volatile修飾running是因為這個字段跨線程讀寫沒有它暫停指令在部分虛擬機上不會被主循環(huán)看到。repaint()加serviceRepaints()連用是 Canvas 的經(jīng)典寫法前者只是把重繪請求丟進事件隊列后者強制同步執(zhí)行到paint完成。少寫后面那一句畫面會滯后一到兩幀彈幕密集時感覺特別明顯。3.2 實體與對象池別讓內(nèi)存在彈幕里抖射擊游戲最怕的不是算力不夠是 GC 在關(guān)鍵時刻來一下。一局下來幾千發(fā)子彈如果每發(fā)都new Bullet()CLDC 上那個小堆幾秒鐘就撐不住。這套代碼的解法是固定容量對象池一次分配永不擴容。public class BulletPool { private final Bullet[] pool; private int liveCount; // [0, liveCount) 是活躍子彈 public BulletPool(int capacity) { pool new Bullet[capacity]; for (int i 0; i capacity; i) { pool[i] new Bullet(); // 啟動時一次性 new 完 } } public void spawn(int x, int y, int vx, int vy, int dmg) { if (liveCount pool.length) return; // 池滿直接丟棄絕不擴容 Bullet b pool[liveCount]; b.reset(x, y, vx, vy, dmg); } public void update(int delta) { for (int i liveCount - 1; i 0; i--) { Bullet b pool[i]; b.x b.vx * delta / 1000; b.y b.vy * delta / 1000; if (b.y -16 || b.y 400 || b.dead) { pool[i] pool[--liveCount]; // 尾元素覆蓋O(1) 回收 pool[liveCount] b; } } } }倒序遍歷是這份回收邏輯能成立的前提。pool[i] pool[--liveCount]把最后一個活躍子彈挪到當(dāng)前位置然后liveCount減一被回收的b則回到數(shù)組尾部等待復(fù)用。因為是倒序被挪過來的那個元素索引一定小于當(dāng)前的i下一輪不會重復(fù)處理。如果寫成正序挪過來的元素會被跳過子彈就「穿?!癸w過去不消失。capacity的取值我一般按「最壞情況下屏幕同屏子彈數(shù)」的 1.5 倍來定這套代碼給的是 64。滿池時丟棄而不是擴容這個設(shè)計是刻意的——寧可少一發(fā)子彈也不能在戰(zhàn)斗中觸發(fā)一次數(shù)組復(fù)制。敵機那邊同理EnemyManager里也是固定數(shù)組加波次調(diào)度不用Vector。3.3 碰撞判定圓形距離平方比矩形更貼合彈幕判定用矩形包圍盒是最省事的但豎版射擊游戲里機身窄、彈幕斜飛矩形框會在視覺上明明沒碰到的時候判定命中玩家感受很差。這套代碼用的是圓形判定只比較距離的平方省掉開方。public class Entity { public int x, y; // 左上角坐標(biāo) public int halfW, halfH; // 半寬半高用于繪制 public int cx, cy; // 判定圓心一般略小于視覺中心 public int radius; // 判定半徑 public void syncCenter() { cx x halfW; cy y halfH; } } public class Collision { public static boolean overlap(Entity a, Entity b) { int dx a.cx - b.cx; int dy a.cy - b.cy; int r a.radius b.radius; return dx * dx dy * dy r * r; // 比較平方不做開方 } }radius通常設(shè)成視覺尺寸的 0.6 到 0.7 倍這叫「寬容判定」玩家被擦彈擦過去不算死手感會好很多。自機受傷判定要比敵機更小一圈因為自機是玩家唯一在意的對象判定越寬容越舒服而敵機被打中的判定可以放大到 1.0讓射擊更有反饋感。syncCenter必須在坐標(biāo)變化后調(diào)用或者干脆把cx/cy算成x halfW的 getter避免忘了同步導(dǎo)致判定錯位——這是個特別隱蔽的 bug畫面上全都對就是打不中。每幀的檢測順序是自機子彈 × 敵機 → 敵機子彈 × 自機 → 敵機 × 自機。前兩組是 O(m×n) 的雙層循環(huán)靠數(shù)量控制子彈池 64、敵機池 24保證在 CLDC 上也不卡。想再省一點可以按屏幕縱向分三段只跟同一段內(nèi)的對象比實測能砍掉約六成計算量。3.4 敵機波次與難度曲線波次調(diào)度沒寫成狀態(tài)機用的是一個很土但好調(diào)的結(jié)構(gòu)數(shù)據(jù)表加游標(biāo)。// 每一波起始時刻(ms)、敵機數(shù)量、生成間隔(ms)、橫向起始位置、移動模式 private static final int[][] WAVES { { 0, 5, 800, 40, 0 }, // 模式0直線下落 { 6000, 8, 600, 100, 1 }, // 模式1正弦橫移 {13000, 12, 400, 20, 2 }, // 模式2斜向俯沖 {21000, 16, 300, 60, 3 }, // 模式3追蹤自機 };把難度寫成表的好處是調(diào)平衡的時候不用改代碼邏輯。想讓它更兇把間隔從 800 調(diào)到 500、數(shù)量加兩架重新編譯就行。游標(biāo)推進的邏輯在EnemyManager.update里當(dāng)前波次的生成數(shù)量耗盡且場上敵機清空后才推下一波中間留一段空窗給玩家喘氣。這個「清空再推進」的條件如果不加波次會疊在一起第三關(guān)就能直接勸退。4. 屏幕與按鍵適配跨機型移植最容易翻車的一層同一份 JAR在 128×160 的機器上正常在 240×320 的機器上飛出屏幕在 176×208 的機器上按鍵全亂——這是移植 J2ME 游戲最典型的一天。適配層不做前面寫得再好也白搭。4.1 分辨率適配邏輯坐標(biāo)系加一次性重采樣MIDP 的drawImage不支持縮放這是硬約束。想畫一張能適應(yīng)多種屏幕的圖只有兩條路運行時自己重采樣或者按固定邏輯分辨率畫、四周留黑邊。這套代碼兩條都用了。先看繪制時的坐標(biāo)系換算private static final int LOGIC_W 240; private static final int LOGIC_H 320; protected void paint(Graphics g) { int sw getWidth(); int sh getHeight(); // 以邏輯分辨率為基準(zhǔn)計算居中偏移不做非整數(shù)縮放 int ox (sw - LOGIC_W) / 2; int oy (sh - LOGIC_H) / 2; g.setColor(0x000010); g.fillRect(0, 0, sw, sh); // 先鋪滿底色防止邊緣露出臟像素 g.translate(ox, oy); // 之后所有繪制都用邏輯坐標(biāo) g.setClip(0, 0, LOGIC_W, LOGIC_H); // 裁剪掉超出的部分別畫到屏幕外 drawBg(g); enemies.draw(g); bullets.draw(g); player.draw(g); drawHud(g); g.translate(-ox, -oy); // 還原給后續(xù)可能的全屏繪制讓路 }g.translate加setClip這個組合是整段的核心。邏輯坐標(biāo)統(tǒng)一按 240×320 算屏幕比它大的時候居中兩邊鋪深色底比它小的時候裁剪掉邊緣保證玩家不會被看不見的敵機打死。translate必須成對還原否則 HUD 和后續(xù)的全屏效果會畫到偏移位置上去這個 bug 排查起來特別費勁因為邏輯層的數(shù)據(jù)全是對的。屏幕比邏輯分辨率大的時候如果就這么留黑邊會很丑。更徹底的做法是啟動時把整套素材按比例重采樣一次// 啟動時按目標(biāo)尺寸把素材重采樣一遍運行時零開銷 public static Image scaleImage(Image src, int dstW, int dstH) { int sw src.getWidth(); int sh src.getHeight(); int[] srcPx new int[sw * sh]; src.getRGB(srcPx, 0, sw, 0, 0, sw, sh); // 需要 MIDP 2.0 int[] dstPx new int[dstW * dstH]; for (int y 0; y dstH; y) { int sy y * sh / dstH; for (int x 0; x dstW; x) { dstPx[y * dstW x] srcPx[sy * sw x * sw / dstW]; // 最近鄰插值 } } return Image.createRGBImage(dstPx, dstW, dstH, true); }最近鄰插值出來的圖會有鋸齒但 J2ME 上沒得選——雙線性要浮點運算CLDC 1.0 直接不支持。createRGBImage的第四個參數(shù)processAlpha傳true才會保留透明通道傳false會得到一張黑底圖這個參數(shù)值錢。重采樣只發(fā)生在啟動時算力代價可以接受千萬別放進paint里一幀幾次重采樣能讓幀率掉到個位數(shù)。4.2 按鍵映射getGameAction 的返回值不一定靠得住Canvas.getGameAction(keyCode)理論上把物理鍵翻譯成UP/DOWN/LEFT/RIGHT/FIRE這些抽象動作實際上部分機型對方向鍵返回 0還有一批機器把方向鍵直接映射成數(shù)字鍵 2/4/6/8。只寫 switch 不寫兜底用戶會發(fā)現(xiàn)飛機紋絲不動。protected void keyPressed(int keyCode) { int action getGameAction(keyCode); switch (action) { case Canvas.UP: player.moveUp(); break; case Canvas.DOWN: player.moveDown(); break; case Canvas.LEFT: player.moveLeft(); break; case Canvas.RIGHT: player.moveRight(); break; case Canvas.FIRE: player.fire(); break; default: // 兜底部分機型方向鍵不映射游戲動作只報數(shù)字鍵 if (keyCode Canvas.KEY_NUM2) player.moveUp(); else if (keyCode Canvas.KEY_NUM8) player.moveDown(); else if (keyCode Canvas.KEY_NUM4) player.moveLeft(); else if (keyCode Canvas.KEY_NUM6) player.moveRight(); else if (keyCode Canvas.KEY_NUM5) player.fire(); break; } }這套兜底覆蓋了絕大多數(shù)功能機的鍵位習(xí)慣。還有個更細(xì)的問題某些機器的左軟鍵對應(yīng)-6、右軟鍵對應(yīng)-7取值是負(fù)數(shù)用getGameAction同樣返回 0需要單獨判斷。別指望一次寫完全部機型最實際的做法是在游戲里塞一個隱藏的「按鍵調(diào)試」界面把keyCode和getGameAction的返回值直接打在屏幕上裝機實測時看一眼就知道該補哪一行。4.3 觸屏與鍵盤雙支持MIDP 2.0 之后不少機器有了觸摸屏。這套代碼同時實現(xiàn)了pointerPressed但它不直接和鍵盤邏輯混在一起而是把觸摸坐標(biāo)換算成邏輯坐標(biāo)后交給同一套移動接口protected void pointerPressed(int px, int py) { int lx px - offsetX; // 屏幕坐標(biāo) - 邏輯坐標(biāo) int ly py - offsetY; if (isInsideFireButton(lx, ly)) { player.fire(); } else { player.moveTo(lx, ly - 20); // 手指上方留 20 像素別被手指擋住 } }py - 20這個偏移量是上手之后改的手指落點和玩家以為的位置有偏差直接moveTo會讓飛機貼著手指下沿。操作方式上鍵盤機是「按住方向鍵持續(xù)移動」觸屏是「拖哪走哪」兩套邏輯共用player.moveTo和player.moveBy兩個方法互不干擾。5. 避坑與排查真機上那五個最想砸手機的瞬間模擬器跑通只是開始真機才是驗收場。以下五條都是這套源碼在移植過程中實際遇到過的問題按「現(xiàn)象、原因、解決」的順序?qū)懹龅酵钪苯映?.1 白屏與花屏圖片和屏幕尺寸的坑現(xiàn)象一模擬器正常裝到真機啟動后一片白幾秒后自動退出。原因基本鎖定在圖片資源上——導(dǎo)出的 PNG 帶了 32 位 alpha 通道或者用了真機解碼器不認(rèn)的非索引色格式。CLDC 上的 PNG 解碼器實現(xiàn)差異很大越老的機器越挑。解決辦法是把所有素材重新導(dǎo)出成 8 位索引色 PNG透明部分用純色鍵比如 0xFF00FF填充繪制時用drawRegion配合色鍵摳掉同時把單張圖控制在 128×128 以內(nèi)部分機型對單圖尺寸有硬上限?,F(xiàn)象二畫面能出來但整體偏到一邊右邊一條黑。這是getWidth()返回的寬度和實際可視寬度不一致導(dǎo)致的某些滑蓋機在合蓋狀態(tài)下報的是內(nèi)屏寬度。解決方式是在sizeChanged(int w, int h)回調(diào)里重新計算偏移量而不是在構(gòu)造函數(shù)里算一次就存成常量。這個回調(diào)在屏幕旋轉(zhuǎn)和開合蓋時都會觸發(fā)是唯一可靠的時機。5.2 崩潰與內(nèi)存CLDC 的 API 紅線現(xiàn)象三玩到第三關(guān)黑屏退出日志里是OutOfMemoryError。兩個來源一是每幀new實體二是同一張圖被反復(fù)Image.createImage加載。前者的解法是第 3 章講的對象池后者更隱蔽EnemyManager里每種敵機如果各自加載一次貼圖同屏五架就是五份位圖在堆里。正確做法是建立Res類在startApp里把所有Image一次性 load 進靜態(tài)字段之后全局共用同一份引用?,F(xiàn)象四編譯通過真機一運行就NoSuchMethodError。說明用了 CLDC 1.0 里沒有的 API但編譯時的 classpath 指向了 CLDC 1.1 的庫。常見嫌疑人是Float.valueOf、String.format、java.util.regex和Collections.sort的部分重載。查法很簡單把工程配置里的 Configuration 改成 CLDC-1.0 再完整編譯一次編譯不過的地方就是雷區(qū)。真要用浮點就自己用整數(shù)放大一百倍來模擬別賭目標(biāo)機型支持。5.3 交互與存檔按鍵、RMS、音效三連坑現(xiàn)象五方向鍵完全沒反應(yīng)但確認(rèn)鍵能開火。就是 4.2 節(jié)講的getGameAction返回 0加上數(shù)字鍵兜底即可。順帶一提有些機器在keyPressed里收到的是重復(fù)事件按住方向鍵會以極快頻率觸發(fā)導(dǎo)致飛機瞬移到邊界——加一個keyReleased里清標(biāo)志、keyPressed里判重的簡單鎖就能壓住?,F(xiàn)象六最高分重啟后歸零。RecordStore寫完沒關(guān)是頭號原因部分機型的數(shù)據(jù)要等closeRecordStore()才落盤代碼里必須在finally里關(guān)。第二個原因是 RMS 的作用域跟 MIDlet 套件綁定改了MIDlet-Name或者換了簽名之前存的數(shù)據(jù)就等于沒了——所以名字這東西定了就別動。穩(wěn)妥的寫法是加載失敗一律返回 0存檔失敗直接吞掉異常絕對不能讓存檔問題把整個游戲拖崩。音效是同類問題里的第三顆雷。Manager.createPlayer在缺少 MMAPI 支持的機器上會拋異常甚至直接NoClassDefFoundError。整個播放邏輯必須包在 try-catch 里并且先用Manager.isTypeSupported(audio/midi)探一下不支持就靜音降級游戲照跑。6. 二次開發(fā)改造換一套美術(shù)、加一種武器之后怎么驗證改造這套源碼最省力的順序是「先換皮、再改數(shù)值、最后加機制」因為三者的驗證成本是遞增的。換皮只需要看不崩加機制要玩得爽中間隔著幾十次真機重啟。6.1 換皮改動面其實只有三處美術(shù)替換不要動代碼邏輯只碰三個地方res目錄下的 PNG 文件、Res.java里的尺寸常量、Entity子類里的halfW/halfH/radius。自機的機身窄radius給 6 到 8 就夠敵機體積大可以給到 14。改完一定要把BulletPool的容量重新算一遍——新美術(shù)如果讓子彈變大同屏能容納的數(shù)量就變了池子還是 64 的話會在密集彈幕時開始丟子彈表現(xiàn)為「明明在射但打不中」。6.2 加一種武器從對象池容量到渲染順序加激光武器的最小改動路徑是這樣的在BulletPool外面再開一個LaserPool容量小一點8 條足夠因為它們判定粗、存在時間長。渲染順序上激光要畫在普通子彈下面、背景上面否則會蓋住自機。數(shù)值上激光給「持續(xù)傷害」而不是「單次傷害」就需要在Entity上加一個dmgPerTick字段配合update(delta)按毫秒累加避免高幀率時傷害翻倍。做完這一步別忘了難度曲線也得跟著調(diào)——加了強力武器第四波的敵機數(shù)量不漲游戲就變成割草了。6.3 真機驗證清單改完別急著打包按這張表過一遍能省掉大量返工驗證項怎么驗不通過先看哪里冷啟動裝完直接開不看任何界面Res.loadAll是否在 Canvas 之前掛機切回按掛機鍵 30 秒再切回startApp的canvas null判斷滿屏彈幕打到第三波觀察是否掉幀BulletPool容量與FRAME_MS判定手感貼臉躲彈看是否被誤判radius取值與syncCenter調(diào)用存檔打出最高分退出重進closeRecordStore是否在 finally靜音降級在不支持 MIDI 的機器上跑音效 try-catch 是否完整這套流程我從第二個移植項目開始就沒斷過。早期吃過虧模擬器上一切正常真機裝上去第一波敵人還沒出完就白屏了回頭查了整整兩天才發(fā)現(xiàn)是某張圖的 alpha 通道問題。從那以后我每次改完一個副本都強制在真機上把所有波次跑滿一輪再打包不管改的是一行數(shù)值還是一次換膚。希望幫到你。本文還有配套的精品資源點擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
国产人妻一区二区三区欧美毛片| 一区二区三| 天天舔九色婷婷| 欧美高潮| 日韩人妻一二三区视频| 日本精品久久久久久久| 欧洲亚洲国产综合在线| 色婷婷久久| 麻豆 亚洲 97| 精品无码久久久久久国产浪潮| 2024人人操人人摸| 亚洲极品| 亚洲Av无码成人精品国产| 欧美日韩亚洲天堂网| 秋霞网无码| 亚洲综合色网| 中文一区在线视频| 自拍啪啪视频| 特级大荫道BBwBBwBBW| 久久青青草在线视频| 亚洲91极品| 清纯唯美亚洲综合| 精品无码久久久久| 精品少妇一区二区三区免费观看| 香蕉欧美| 超碰中文字幕人妻草一区| 18禁精品网站在线看| 国产精品视频播放| 日本熟妇人妻中出视频| 78精品在线| 亚洲日韩AV视色| 一级毛片电影免费看| 东京成人一区| 红杏大香蕉| 欧美色涩| 成人精品一区二区三区| 女优视频第10页| 欧美极品美女aaaaaa级黄片| 91 综合 色| 婷婷丁香五月激情啪啪| 精品无码秘 人妻一区二区| 国产自产91区13区| 亚洲高清无码在线桃色| 传媒在线观看一区二区三区| 67194无码不卡| caoni国产亚洲av| 天天操福利视频综合网站| 天美精品av| 亚洲影院成人| 日韩专区久久久| 九九久久九九久久| 无码日韩人妻av一| AAAA欧美日韩| 午夜在线播放| 熟妇一区,二区,三区。| 久久25| 国产亚洲精品av一区| 俺去啦自拍| 青青草视频久久久久| 亚洲好看强奸乱伦| 精品国产乱码久久久久久网站入口| 天天操av懂色| 强奸乱伦资源| 久久国产熟女影院| 欧美九九九九九| 91丝袜激情在线| 日产狠狠干| 丝袜剧情| 亚洲操逼网| 成人自拍三级在线观看| juliaann丝袜| 我爱操| 久久综合超碰| 性色av一区二区| 懂色AV一区二区三区| 人人操人人摸人人看人人干| 三男一女不戴套的A片| 91精品丝袜久久久久久| 亚洲人精品午夜不卡| 综合网欧| 日本丝袜美腿人妻九九| 精品国产乱码久久久久久影片| 久久精品中文字幕无码l| www.91人妻.com| 特色a在线上| 亚洲无码一区成人免费午夜| 99re99在线视频| 成人精品欧洲亚洲| 啊啊啊啊啊啊啊啊要喷了| 欧洲中文字幕| aaa淫乱视频| 亚洲欧美精品91| 亚洲九九夜夜| 综合久久婷婷| 3571色综合一区二区二区| 精品一区二区亚洲国产| 亚洲欧综合另类无码一区| 在线观看一级α片刺激高潮视频| 色欲天天综合久久久无码网中文| 亚洲天堂男人| 亚洲国产精品99久久久| 亚洲精品天堂久久A∨51成人漫| 中文字幕日韩专区精品系列| 日本性爰一道本| 日韩有码 一区二区三区| 国产精品白领在线观看| 国产兽交视频在线播放| 99re热有精品视频国产| 欧美激情另类一区二区| 亚洲少妇综合在线播放| 色色色色网站| 日本特黄f c2| 日韩成人午夜精品久久高潮| 神马九九九| 99精品高潮| 碰人碰碰人人开房人肉| 日韩精品亚洲一二三| 懂色av中文字幕| 正宗无毛一线天嫩逼| 另类专区加勒比| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 欧美东京热精品A∨| 日韩综合无码色欲vv| 亚洲国产一区二区入口| 一级啊性爱在线视频| 五月天社区| 国产欧美日韩女同性恋ww喷水精品| 精品射1999| 国产熟妇一区二区| 桑老女人九区| 国产一级内射无挡观看| AV电影在线播放| 天堂日本亚洲欧美| 日曰骚久久精品| 男人的天堂 在线一区| 亚洲一区在线观看欧洲| 成人片在线播放| 中文字幕老熟妇黄色视频| 肥臀熟女福利视频一区二区| 蜜臀网址在线| 国产操伦| 大香蕉碰碰| 青青草亚洲一区| 超碰久久网| 一区二区视频在看| 国产午夜激片Av毛片不卡| 99ri视频| 精品999日本| 91欧美情色| 天天操天天射天天日| 中文自拍欧美影视| 裸模AV女优| 亚洲欧美天| www.av家庭乱伦| 美国aaaaa一级黄片| 欧美.亚洲.另类.丝袜.制服.诱惑| 久久蜜色情在线视频xxx免费观看| 91网站18+| 99re9| Blackedraw视频一区二区| 丁香婷婷久久 | 99国内熟女露脸视频| 91美女片在线| 性在久久久久久| 久久国产精品91| 亚洲国产青青| 日韩精品人妻一| 日韩精品三区四区| 少妇高潮流水av免费| 亚洲成人无码影院| 欧洲亚洲人妻无码中字久久三区四区| 欧美人黑A片无码免视费| 亚洲无码?第一页| 精品人妻夜夜草| 91精品人妻一品二品三品| 国产欧美精选激情视频| 午夜福利在线视频1000| 国产精品ww久久| 另类小说五月天| 98福利在线视频| 国产美女销魂在线观看不卡| 精品无吗久久| 亚洲在线a| 五月激情在线| 久久久一区二区三区麻豆| 一级aaaaa欧美中文字幕录像片| 国产a级精品| 天天日天天看| 无码色| 热热色91| 欧美不卡在线美女| 午夜人人操| 狠狠久久四虎| 亚洲欧美一区二区网址| 91亚州欧美| 精品无码欧美三级| 9久久9综合| 久久性爱视频免费看| 蜜臀久久久久久999| 青青草好吊色| 97色伦欧美| 日语五十路和六十路亚洲国产精品| 五月综合色| 久久东京热久久| 天天做天天爽| 俺去啦俺来也久久综合| 久久精品国产久精国产| wwwcaobibi| 亚洲怡春院| 人人干人人操人人..com| 十八禁一区二区无码观看| 久操网址| 凹凸 69堂 在线播放| 国产热RE99久久6国产精品首| 人妻无码一区二区三区久久99| 99久久久er直播网址| 日韩欧美麻豆| 久久久久人妻| 国产精品一区二区手机看片| 国产成人天堂| 欧美顶级黄片AAAAA在线免费看| 不卡六六在线91| 亚洲精品亚洲人成人网| 亚洲影视综合| 中文字幕55555| 亚洲第一精品在线视频| 日韩九九九| 97一区二区蜜臀| 人人干黄色| 黄色十八禁| 日本99久久| jazzjazz国产精品麻豆| 亚洲日本天堂| 蜜臀久久99精品久久综合| 嗯嗯啊啊好爽| 中文字幕视频免费| 日本三级韩国三级99| 欧美一级AAAAAAA| 白嫩白嫩的午夜九久久久久久久久久久久成人剧场| 中文字幕高清20页视频| 婷婷五月天激情网| 97碰| 色婷婷一区二区三区久久午夜| www.婷婷六月天| 男女日B国产| 欧美肥臀在线| 中文字幕无码不卡啪啪| 中文字幕 一区二区 亚洲无码| 熟女五十路一区二区三| 日韩精品人妻| 精品欧美日韩在线观看| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 久久精品国产亚洲妲己影视| 97操97干| av线电影| 国内黄色精品| 久久天天摸| 欧美亚洲日本视频久久久| 人妻另类 专区 欧美 制服| 热热色色综合| 国产福利夜| 欧美亚洲综合色| 91 亚洲 欧美 日韩 国产 综合| 26uuu成人影片| 风间由美日韩欧美久久| 欧美人妻熟女在线| 青草视频人妻在线观看| 视频在线观看一二三区| 五月天综合网| 欧美精品999| 黄人人操人人操| 天堂男人网| 中文字幕国产| 国产精品一区二区三区免费视频| 四虎免费在线播放| 学生妹天天看| 久久爱超碰网| 亚洲色资源| 亚洲 欧美 另类 综合 偷拍| 国产又黄又猛又粗又爽的网站| 亚洲午夜av| 深田咏美亚洲精品福利社| 午夜激情成人在线观看| 美国一区二区三区视频| 视频黄色国产一级| 凹凸视频在线观看伊人| 涩涩这里只有精品视频| 久久精品福利影院| 黄人人操人人操| 成人羞羞视频国产| 亚洲 暴爽 AV人人爽日日碰| 亚洲情色综合| 牛牛操视频逼| 人人干黄色| 亚瑟国产精品久久无码| 老熟妇一区二区三区…| 国产中文大片资源中文字幕| av网页一区二区三区| 午夜视频好爽啊| 手机在线免费看的av| 人妻偷拍一区二区三区| 国产无码三级视频在线观看| 美国黄片aaa| 超碰无码加勒比| 免费自拍三级综合| 强奸乱亚洲| 九九久久综合| 老色69| 99.色网| 嫩草伊人久久精品| 风骚少妇视频中文字幕| 亚洲成人AB| 亚洲综合20p| 日韩无码极品| 日韩激情啪啪啪| 少妇高潮对白在线观看| 大奶啊啊好爽| 欧美亚洲影视| 日本高清一本二本免费不卡| 久久精品超碰| 亚洲日韩精品久久久久一区壹牛| 久久精品高清AV| 国内毛片无码一级毛片| 中文字幕视频在线观看一区二区| 亚洲国产亚洲天堂| 91天堂| 亚欧高清| 爽 好舒服 无码刺激久久| 五月激情在线| 婷婷五月天无码 | 免费啪啪一级视频| 97资源超碰| 久婷婷一区| 91久热| 中文?日韩?免费?精品| 殴美在线AⅤ| 水澄无码AV| 日影院久久婷婷夜夜网| 另类天堂| 中文字幕一区二区三区视频播放| 九X超碰| 精品久久97| 国产精品无码av| 2020视频1区2区3区| 媚薬在线视频麻豆| 中文字幕一区二区三区50路| 欧美日韩香蕉| 亚洲91亚洲| 日本布卡一区二三区| 美日韩男女操屄视频| 大香蕉黄色一区| 日日AV加勒比| 亚洲色婷婷久久久综合日本| 国产版a级片直播在线| 欧美综合色站| 91色拍| 欧美精品日韩一区二区| 精品美女久久一二三| 精品久| 日韩欧美俄罗斯A片| 九九九九九九亚洲| 国产精品网址| 精品人人插人人操| 日韩综合色网| 插穴性爱视频在线观看| 日本 免费 一区二区三区 久久香蕉| 少妇无码999| 精品毛片久久久精品毛片| 欧美熟妇人体| 一级乱伦网站| 日韩人妻少妇中文字幕| 91老熟妇| 亚州色交| 青青在线视频日韩欧美| 色99视频| 一直超碰| 加勒比久久av| 国产精品婬乱一级毛片彝族| 久久久一区二区三区四曲免费听 | yazhousetuoumei| 91日韩网站| 亚洲一本大道中文字幕无码在线| 亚洲色图 图片| 蜜乳视频网站| 国产精品亚洲四五区在线观看| 探花精品 一区二区| 五月色丁香| 国产91丝袜 在线播放| 亚洲激情AV| 91青青在线| 婷婷色导航| 男人的天堂免费| 日本午夜久久电影| 我想要 啊 啊 啊| 日本 欧美 亚中文字幕| 久久中出| 久噜噜| 久久无码成人| 高清孕妇孕交 交孕妇| 97任你吞精| 一区二区三区男人的天堂| 日本免费亚洲欧美| 久久精品国产亚洲AV清纯| 亚洲射综合网| 强奸乱伦亚洲第一页| 久久美国毛片| 五月激情啪啪| 伦激情人妻另类人妻| 东京热不卡视频| 人人扣人人操| 免费看黄片现成| 99久热精品99re6热| 91快色色色色色| 欧美视频一区二区三区| 玖玖视频在线资源一区二区三区| 白丝被操91| 久操在97| 亚洲天堂电影精品一区| 国产精品久久久久久久久久梁医生| 欧美色一二三| 九九无码视频| 久久国产AⅤ| 激情黄色五月天| 婷婷五月在线视频| 三级AV入口| 亚洲精品97久久中文字幕| 花野真衣| 成人午夜小视频手机在线看| 综合欧美亚洲| 免费超碰97久久| 狠狠操综合| 成人小说另类在线| 欧洲站一级二级三级h| www鬼畜国产男人的天堂| 手机在线中文字幕国产| 亚洲国产97| 99re6国产精品99re| 91色情黑丝搞鸡在线观看一区二区三区三州 | 大香交伊人网| 日va操| 国产乱子伦一区二区三区在线观看| 亚洲男人的天堂AV| 国产久久一区二区午夜| 69精品久久久久中文字幕| 在线视频免费观看午夜| 精品国产乱码久久久影院| 欧中日成人免费影视| 人人透人人操| 一区二区三区黄片免费观看| 91精品人| 91少妇人妻| 女同性恋中文字幕| 亚洲人91| 中文有码第五页| 涩五月婷婷| 亚洲国产麻豆一区二区三区| 乱操乱伦AV| 久久黄人人爽视频| 91欧美情色| 91色综合色| 麻豆国产第一| 色综合加勒比四四季| 人妻AV在线| 在线强奷到舒服的无码视频 | 天天色图| 天天爽天天操啊啊啊| 疯操AV| 久久骚| 熟女精品一区二区在线观看| 啊啊啊不要啊啊受不了了视频在线 | 国产第25页在线观看| 无码免费在线观看黄色片| 啊啊啊啊网站| 超碰97丝袜| 香蕉精品二区二区| 黑人精品欧美一区二区蜜桃| 在线啊啊啊| 日本熟妇自慰性高潮一区二区三区| 欧美日韩亚洲五月天婷婷| 91新在线欧美| 精品视频97| 插老姨肥穴| 夜夜狠狠躁日日躁色视频| 天天综合影院91| 日韩精品三区四区| 青青国产在线拍揄自揄拍| 5252色欧美在线| 欧美日韩电影一区二区| 亚洲欧洲色情高清| www被窝色com| 久久久三区二区一区| #NAME?| 怡红院成人视频| 美女啊啊啊啊啊| 美女啊啊啊啊啊啊| 天美91| 国内毛片欧美香蕉精品| 日本性爱欧美性爱| 国产懂色精品国产av| 国产 丝袜 欧美中文 另类| 韩国黄色片精品久久久| 国产欧美精品日韩区二区麻豆天美| 精品久久青青草| 欧美老妇综合网| 精品一区二区三区四区外站| 97精品视频在线播放| 久久三区四区| 日韩免费在线观看不卡| 欧美人妻精品一区二区| 亚洲色五月| 蜜桃在线观看一区二区三区| 日本黄色天堂| 中文字幕一二三| 国产一区二区在线播放量| 亚洲av影音先锋| 色综合五月天| 狠狠夜色午夜久久综合在线| 国产一区二区在线看| 校园春色五月天| 精品人妻中文字幕4399| 国产精品女久久久久av爽| 欧美日韩第一页| 精品网站9999| 97在线播放| 欧美成人性爱视频在线播放| 欧美性爱另类综合| av大香蕉网站| 好湿好紧视频| 欧美国产精品| 国产欧美伊人| 免费超碰97久久| 大香蕉78| 日韩黄色成人性爱| 成人A片男人的天堂| 清纯唯美综合| 日韩国产在线观看av| 东京热激情视频一二三区| 日夜干射色啊| 激情欧美97| 91成人久久| 日日日啊啊啊| 日逼97| 自拍大香蕉乱插| 色诱中文字幕| 天天噜| 久久香蕉国产线看观看猫咪av| 久久精品亚洲东京热色播| 精品无av| 久久无码电影| 天天色怡春院| 一区操逼| 亚洲人在线| 欧美在线啊啊| 久热无码| 综合五月天| 大色综合网| 97碰碰日本乱偷人妻中文的| 久久精品国产精品一区| 嗯嗯啊啊视频在线看| 超碰综合97在线| 欧美αv.com| 刺激性视频黄页| 91 丝袜在线播放| 欧美一级三级| 午夜精品久久久久久久久久久久久 | 亚洲A曰本VA欧美VA视频| 五月婷婷六月丁香| 午夜啊啊| 婷色五月| 人人妻人人澡人人爽人人精品浪潮| 黄片com.| 国产丝袜高跟美女av免费观看| 国产女同视频在线播放| 一级黄碟在线观看| 大香蕉www.超碰| 久久最新视频免费观看| 色在线综合| 午夜天堂网| 一区二区三区美女超清| 草b在线 | 搡老女人老熟女91| 国产天天骚| 精品人妻中文字幕高清| 97硬碰| 翔田千里无码中出中文字幕| 97天天弄| 日本人人操人人操| 美女91网址| 婷婷久久综合| 亚洲加勒比久久日本道| 欧美18禁91| 51久久夜色精品国产麻豆| 亚洲综合图色在线| 日本性爱少妇| 99re28在线观看| 熟女日韩| 人人操人人插人人摸人人干| 香蕉免费一区二区三区不读| 国产人妻天天干精品| 91中文字幕在线观看| 久热免费视频| 四虎国产精品永久在线囯在线 | 欧美人妻二区三区| 人人操人人插人人摸人人干| 日韩专区久久久| 欧美精品99久久久| 综合伊人网12色| 亚洲无限观看| 超碰久热| 日韩福利综合一区| 99这里都是精品| 亚洲天堂中文字幕无码男同| 久久久一区二区三区三州| 国产丸一视频| 精品国产乱码久久久久A| 国产亚洲精品无码三区| 校园春色 亚洲| 国产老熟女| 午夜福利视频在线一区| 久热一区二区| 亚洲在钱| 亚洲图片欧美制度| 免费看日产一区二区三区| 久久伊人最新网址视频| 伊人少妇久久久| 一本一道人妻久久一区二区三区 | 午夜操一操| 五月开心久久AV官网| 激情99| 国产亚洲精品美女久久久久久2021| 亚洲图片小说欧洲| 淫乱图区 | 亚洲码专区| 综合久久久久久久久91| 欧美丝袜91| 亚州中文字幕超碰97| 色五月激情网| 蜜乳AV一区二区三区四| 欧美乱伦专区| 国产激情在线| 亚洲人久久久网| 美女露胸露屁股| 亚洲一区日韩| 久久av一级av少妇av高潮| 中文字幕一二三| 精品大全99999| av麻豆啪啪| 夜夜操91744565| 9+1视频网址| 日韩成人性爱AV| 国产精品无码成人精品| 上特色A在线| 亚洲精品蜜桃久久久| 四季AV一区二区凹凸精品小说| 91N欧美| 五月天激情四射| 人妻乱仑一区二区三区| 精品久久久高清无码| 电家庭影院午夜69久久夜色精品国产69乱| 热G综合热G中文| 亚欧美综合网。| 乱老熟女一区二区三区| 熟妇一区二区三区| 色噜噜人妻av 中文字幕| 丁香五月激情五月| 五月色网| 婷婷色色网| 不卡啪啪视频| 亚洲成A∨人影院在线欢看| 又大又长又粗又爽又黄| 亚洲欧美日韩免费电影| 亚洲人人操| 国产三级日产三级韩国三级| 久久久久久久亚洲Av无码| 人妻啪| 欧美一区二区三区四区综合| 成人性爱AV在线免费观看| 内射夫妻三片| 久久久久久久九九九九九九| 免费日韩黄片| 国产毛片在线| 超碰成人最新最好看| 自拍偷拍 高清无码| 久久久亚洲高清不打码| 十八禁成人网站在线观看| 精品人妻一区| 久久肏大逼| 色爱国产| 天天操女人| 精爱久久| 人妻少妇精品久久久| 91女优在线观看 | 久久久久久人| 色欧美综合| 国产无码精品成人| 国产传媒操逼视频| 性爱乱伦网址| 清柠毛片| 熟妇艹鸡八| 97丝袜亚洲在线播放| 97就爱干| 欧美亚洲手机在线| 亚洲av噜噜噜噜噜噜| 九九视频黄色片| 操逼1区| 五月丁香影院| 懂色AV中文| 999熟女精品| 国产成人精品网站| 内射夫妻三片| 色青青久久影视| 99婷婷| 亚洲自拍欧美国产首页网曝| 在线小说视频一区| 92久久| 视频在线观看免费一区二区三区| 韩国一级做A片免费的| 日韩久久三区| 午夜后入| 久久啊啊| 成人三一级一片aaa| 国产这里只有精品| 欧洲一区二区三区免费| 大香蕉2017| 日婷婷| 婷婷在线精品| 在线视频五十市| 99在线精品观看视频中文 | 欧美天天综合| 久草视频在线视频在线视频在线观看 | 午夜激情成人在线观看| 91久久久久久| 91五月天| 精品视频一区二区| 黄片www.| 牛牛久久国产精品视频一二三| JuliaAnnXXX888| 一起草欧美| 97视频网站在线观看| 丝袜狠狠草尤物 91| 香蕉人欧美综合| 丝袜美腿制服人妻二区中文字幕| 久久久999网站| 成人草草视频| 综合欧美激情网| 亚洲AV乱码专区国产噜噜亚洲 | 中文字幕人乱码中文字的预防方法 | 中文久久久| 国产一区二区视频在线播放| 日韩无码AB| 毛片久久| 久久超碰爱| 精品人妻15区| 日韩乱伦视频| 日韩精品电影| 人妻一二三区| 艾草av| 久久91| 天天爱天天操| 一二区在线观看视频| 乳欲人妻办公室奶水| 久久国产视频专区一二三| 麻豆天美一区二区| 大香网伊人久久综合| 青青草中日韩在线| 岛国大片在线观看网站入口| 啊啊啊啊啊啊好湿好爽视频| 亚洲色狠| 好淫网一二三视区| 成年人黄色| 激情五月天婷婷| 有码专区最新中文字幕有码| 手机看片1025| 亚洲熟妇AV日韩熟妇在线| 日逼国产| 欧美精品亚洲精品日韩传电影| 美国一区二区三区视频| 97在线观看免费视频l| 操逼天美3区| 少妇极品熟妇人妻无码| 自怕偷自怕亚洲精品| 九九热超碰97亚洲最新香蕉| 9国产超碰| 曰本熟女视频| 国产女人与拘做受视频免费| 亚洲综合图色在线| 日日夜夜精品| 精品二999| 亚洲人妻中文高清| 啊啊啊不要嗯嗯在线观看| 国产AV激情无码久久无码| 天天超级碰碰碰| 亚洲国产精品成人无码久久久 | 东北女人的毛片| 天天操人人操狠狠插| 久久伊人青青草| 口爆吞精在线观看| 97 国产精品| 99热这里只有精品8| 91成人无码| 国产久久一区二区三区野外在线| 亚洲日本激情| 伊人四虎综合| 蜜桃色色网站视频三区| 亚洲麻豆av一区二区| 夜夜嗨AV蜜臀av| 日韩精品一区二区日韩| 大香交| 亚洲少妇色| 免费家庭乱伦视频| 91爱欧美| 久久极品伊人| 黄片qw| 综合网亚洲1| 人妻碰碰碰碰碰碰| 亚洲欧洲综合av在线| 另类老少妇| 91爽啪| 色色香蕉| 亚洲黄色| 夜夜操一区二区| 色五月激情综合网| 极品销魂美女一区二区| 国产精品久久久久999| 色色99| 国产性爱在线视频一区二区| 日韩成人小视频| 亚熟在线| 狠狠五月天| 国产毛片久久久久久久| 久久久夜夜夜| 亚洲Av噜噜一区二区三区妖精| 五月天综合| 欧美国产欧美在线观看| 老熟女网站| 久久一本大香蕉 | 亚洲日韩97| 久久综合精品一区二区三区| 一级免费啪啪片| 午夜视频久久久久一区| 992大香蕉| 裸体美女久久久| 蜜臀久久久久久999| 福利在线观看一区二区| 黄片www视频免费| 我想要啊 啊 啊| 色九月综合| 亚洲第一页色| 欧美日韩中文亚洲v在线综合| 日欧操屄| 国产剧情在线| 欧美性色欧美| 操逼短片| 欧洲精品人妻| yirendaxiangjiashipin| 久久久婷婷婷| 日本人人操人人操| 免费一级黄色录像影片| 精品久久久久久中文字幕视频免费| 欧美后入式| 嫩草黄页| a人片中文字幕一区二区| 欧美色图亚洲特色| 亚洲AV无码| 美女黄色一级A视频| 久久激情综合| 欧美极度丰满熟妇hd| 天天操天天射天天日| 亚洲无码超碰免费| 国产视频人人网| 久久粉色| 无套后入双马尾| 五月天精品| 亚洲诱惑天堂| 亚洲色图第四色| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 激情文学网伊人| 婷婷九月| 99性爱| 色色色综合网| 五月天社区| 成人婷婷丁香| 久久超碰久| 亚洲综合色男人网| 亚洲中文制服诱惑| 色噜噜人妻av 中文字幕| 97天天搞在线| 人人妻人人操人人乐| 人人手机欧洲亚洲国产人妻| 91 丝袜在线| 欧美视频第二页| 最新精品久久蜜桃 | 无码不卡亚洲成?人片| 日韩97| 欧美一级AAAAAAA| 欧美日韩*字幕一区| 欧美一区二区福利在线| 影音先锋视频在线| 日韩在线观看字幕精品| 日本精品成人无码| 99色热| 中文伊人大香蕉视频| 狠狠搞 亚洲91| 夜夜福利| 夜夜无码| 九九九色| 九九精品99| 在线观看黄色电话| 天天天天操| 九九热免费在线国产视频伊人五月| 色眯眯射| 久久中文字幕女同性恋一区| 老熟女阿 国产91| 中文字幕三四区| 一区二区三区在线美女| 中文字幕成人理论在线| 亚洲无码99| 久草资源欧美在线视频| 久热大香蕉网站| 欧美 亚洲精品首页| 97在线视频观看| 丰满人妻无码一区二区三区| 啪啪一区| 亚洲限制级在线| 天天干夜夜肏| 欧美超碰在线| 人干人人人操人人摸| 九九黄色网| 东京成人一区| 亚洲精品97p| 国产粉嫩蜜臀av一区二区三区| 欧美日产国产在线成人第一区| 翔田千里av一区二区三区| 四虎影库国产精品免费| 在线五区| 12一15性XXXX粉嫩国产| 国产亚洲精品第一最新| 亚洲AV资源| 日韩电影中文字幕| 中文字幕人成乱码熟女香港| 午夜丁香| 一二三四视频在线社区中文字幕| 人妻精品一区二区| 精品亚洲国产成人av网站| 粉嫩国产精品久久粉嫩| 亚洲人人夜夜澡人人爽| 欧美v亚洲v综合v国产v妖精| 国模少妇一区二区三区| 99热aaa| 激情欧美97| 免费操逼视频下载| 97大色网| 蜜臀久久99精品久久久久| 日人妻视频91| 四虎884a| 欧美国产精品久久九九| 一区二区娱乐网站| 老女人老91妇女老热女| 国产成人亚洲精品无| 99久久综合网| 久久夜精品一区二区三区| 黄色无码高清黄色无码网站| 亚洲午夜av| 色亚州人久干视频在线观看免费版| 婷婷丁香激情| 国产激情久久久| 伊人嫩草| 成年人黄色小视频网站| 97超碰天天爱天天爱| 日日操夜夜操天天操免费观看麻豆| 亚洲图片欧洲图片aⅴ| 美女主播色欲91抠b在线播放| 亚洲欧美色图片| 国产亚洲99久久精品| 国产蜜臀在线| 亚洲毛片一级带毛片基地| 2019天天操天天爽天天拍| 精品九九| 欧美男女午夜啪啪| 日日躁夜夜躁狠狠躁超爽| 操逼逼无码| 九九热午夜欧亚国产视频| 成人激情无码在线视频| 人妻精品一区二区全免费| 99无码狠狠久久| 伊人天堂在线| 天天影视亚洲| 男人夜色天堂ss| 91中出视频| 99精品免费| 91美女精品| 五月天激情小说网| 777超碰| 99热这里只有精| 青青青在线高清视频在线一二三四区| 强奸乱伦日韩AV| 熟女熟妇伦久久影院毛片一区二区| 欧亚成人| 成人在线午夜视频一区| 熟女精品va中文字幕| 五月天加勒比啪| 亚洲精品a人片在线观看视| 欧美日韩美女精品久草一区二区三区 | 九热久| 久草成人福利导航| 一二三区操逼国产91| 夜夜操天天肏| 亚洲乱色熟女一区| 97在线青| 自拍大香蕉乱插| 超碰97日韩| 91网站18在线观看| 国产无码精品无码| 牛牛久久国产精品视频一二三| 性久久| 白嫩91在线亚洲| 色性欧美| 国产精品99精品视频网站| 午夜毛片高清免费不卡| 人妻aa| 99999国产| 久久久久亚洲精品| 啊啊啊啊啊啊在线| 五月婷网站| 中文字幕jul-617人妻熟女| 久久久一级| 一本大道久| 干美女人妻| 久久精品91| 狠色婷婷久久一区二区三区_| 精产国品一区二三产品| 上床不卡网站| 欧州一区二区三区四区| 亚洲一区二区三区四区视频| 国产第25页在线观看| 屌妞视频久久久久久久 | 黄页18禁| 天堂а√在线最新版在线| 97视频观看| 躁躁躁日日躁2020| av在线人气| 免费自拍三级综合| 夜夜免费视频| 中文字幕在线免费观看视频| 男人综合网| 亚洲综合码| 18禁免费视频| 精品白丝一区| 亚洲免费精品一区| 国产女人与拘做受视频免费| 玖玖爱综合网| 99天堂网| 精品视频久久区| 日韩一级片| 啪啪啪精品| 97爱爱官网| 三级网站超变态精品| 丁香五月电影| 国产中文字幕在线点播| 抽插一区二区视频| 日欧毛片久久| 天美AV片| 国产一区二区欧美日本| 97免费视频在线观看| 色九九综合AV| 久久免费中文字幕在线观看| 欧美另类精品xxxx| 激情一区二区| 91黑丝操| 国产精品欧美激在线| 99热精品在线观看| 草草网站影院白丝内射| 亚洲阿v天堂在线| 国产三级中文字幕粉嫩| 69精品人人人人| 97国产色综合| 亚洲欧美成人在线| 性色av网站| 亚洲 小说 欧美 激情 另类| 99热线麻豆| 久9爱经典视频| 青草视频人妻在线观看| 色眯眯射| 久久超碰爱| 午夜福利1区2区3区| 中文字幕十五区| 天天操天天射青青草| 99精品在线| 999岛国大片| 免费亚洲黄色视频在线观看| 91精品亚洲内射孕妇| 日韩免费簧片| 少妇久久久久久久| 久久国产精品m码| 国语精品av| 中出20p| 亚洲熟妇综合久久久久久| 日日噜噜夜夜久久亚洲一区二区| 久艹伊人精品综合在线| 日本不卡三级网在线播放| www.狠狠干.coom | 影音先锋国产精品| 在线观看国产黄色| 亚洲高清无码AAA久久久精品| 夜夜天天噜狠狠爱2021| 成人性爱av| 亚洲暴力强奸AV| 懂色天天爱天天日天天射天天澡| 伊人久久在线视频观看| 97精品熟女少妇一区| 少妇xx精品| 国产真实野战在线视频| 3p国产欧美99热| 婷婷五月天色| 发朗少妇买婬全视频中文| 骚货 中文字幕 av| 亚洲脚交| 久夜操| 夫妻天天操岛国视频| 精品国产Av无码久久久伦古装| 日韩综合色图| 婷婷超| 素人一区二区三区日韩| 免费精品中文字幕| 多乙久久久久久| 强奸xx国产| 日本欧美成人片AAAA| 97超碰色五月| 色老汉色| 福利天堂| 久9爱精品| 91情色| 日日噜噜夜夜狠狠视频无| 欧美系列在线一区二区| 99色视频| 精彩国产视频播放1区2区| 久草在| 一区二区三区一亚洲中文字幕、综合区灬 | 97超色| 久久99国产精品| 欧美在线永久天堂| japan日本高清乱xxxx| 伊人久久婷婷| 免费的av网| 超碰久在线天天做| 欧美日韩色| 波多野42部激情无码喷潮| 性开放中文AV高清无码免费看| 欧洲熟妇xxXx欧美老妇裸体| 台欧久久精品视频| 亚洲网污污污污| 狠狠爱夜夜| 97在线视频观看网站| 五月婷婷激情网| 欧中日成人免费影视| 蜜臀久久99'精品久久久| 好爽视频在线观看视频| 中文字幕国产| 丝袜美腿诱惑亚洲欧美视频在线观看 | 18一区二区三区|