日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

用Java语言,写一个植物大战僵尸简易版!

發布時間:2025/3/21 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用Java语言,写一个植物大战僵尸简易版! 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

有誰沒玩過植物大戰僵尸嗎?

小灰的一位讀者,用Java語言開發了自己的植物大戰僵尸游戲。雖然系統相對簡單,但是麻雀雖小五臟俱全,對游戲開發感興趣的小伙伴可以學習一下哦~~

游戲設計

植物大戰僵尸中有一個小游戲關卡,屏幕的正上方有一個滾輪機,會隨機生成植物,玩家可以選中植物后自由選擇草坪來進行安放。基于此游戲模式,我將該關卡抽取出來,單獨做成了一個簡易版的植物大戰僵尸。游戲的畫面大概如下:

屏幕左側會自動生成植物的卡牌,單擊選中后可以放置在草坪上。右側會自動生成僵尸,不同的僵尸移動速度不同,血量不同,還有的僵尸有隱藏獎勵,比如:全屏僵尸靜止、全屏僵尸死亡等。當時竟然沒有做游戲的暫停的功能,導致現在截圖的時機很難把控,那這里就先說一下游戲暫停的功能應該怎么做吧。

最簡單的一種暫停方式是鼠標移出屏幕,游戲暫停。所以這里需要引入一個鼠標監聽器事件。

public void mouseMoved(MouseEvent e) {// 當游戲處于運行狀態時if (status == start) {// 通過鼠標移動事件的對象獲取當前鼠標的位置int x = e.getX();int y = e.getY();// 如果鼠標超出了游戲界面if (x > Game.WIDTH || y > Game.HEIGHT) {// 將游戲的狀態改為暫停狀態status = pause;}} }

當然,這只是一個簡單的通過監聽鼠標的位置來改變游戲狀態方法。還可以使用鍵盤監聽器,當按下某個鍵時游戲暫停,這樣的用戶體驗更好。但原理是一樣的,這里就不展示代碼了。

游戲對象

首先分析一下游戲中有哪些對象。各式各樣的植物,各式各樣的僵尸,各式各樣的子彈。那么這里就可以抽出三個父類,分別是植物、僵尸、子彈。在面向對象中,子類將繼承父類所有的屬性和方法。所以可以將三大類中,共有的屬性和方法抽到各自的父類中。比如僵尸父類:

public abstract class Zombie {// 僵尸父類// 僵尸共有的屬性protected int width;protected int height;protected int live;protected int x;protected int y;......// 僵尸的狀態public static final int LIFE = 0;public static final int ATTACK = 1;public static final int DEAD = 2;protected int state = LIFE;/** 這里補充一下為什么父類是抽象類,比如每個僵尸都有移動方法,* 但每個僵尸的移動方式是不同,所以該方法的方法體可能是不同的,* 抽象方法沒有方法體,在子類中再去進行重寫就可以了,* 但有抽象方法的類必須是抽象類,因此父類一般都是抽象類*/// 移動方式public abstract void step();.... } 植物父類、子彈父類就同理可得了。 上面說到子類共有的方法需要抽到父類中,那么部分子類共有的方法該如何處理呢?比如,豌豆射手、寒冰射手可以發射子彈,堅果墻就沒有射擊的這個行為。所以這里就需要用到接口(Interface)。 public interface Shoot {// 射擊接口 - 將部分子類共有的行為抽取到接口中// 接口中的方法默認是public abstract的,規范的編碼應該將該字段舍去public abstract Bullet[] shoot(); } 到此為止,游戲對象的屬性、方法基本都定義完了,至于圖片的顯示以及如何將圖片畫出來,只需要使用相應的API即可,這里就不做描述了。工作一年回過來看看,這里能優化的地方還有很多,比如對象的血量、攻擊力、移動等都可以統統寫入到配置文件中,這樣在做游戲參數的調整時,不需要去修改代碼相關的內容,只需要修改配置文件里面的參數即可。

游戲內容

現在我們有了游戲的對象,該開始讓對象加入到游戲中來,接著讓他們動起來,最后還得讓他們打起來。首先,讓對象加入到游戲中來我是這么做的,這里還是以僵尸為例:

// 首先要有一個僵尸的集合 // 僵尸集合 private List<Zombie> zombies = new ArrayList<Zombie>(); // 接著定義隨機生成僵尸方法 public Zombie nextOneZombie() {Random rand = new Random();// 控制不同種類僵尸出現的概率int type = rand.nextInt(20);if(type<5) {return new Zombie0();}else if(type<10) {return new Zombie1();}else if(type<15) {return new Zombie2();}else {return new Zombie3();} }// 僵尸入場 // 設置進場間隔 /* * 這里補充一下為什么要設置進場的間隔 * 因為游戲的運行是基于定時器的, * 每隔一段時間定時器就會執行一次你所加入定時器的方法, * 所以這里需要設置進場間隔來控制游戲的速度。 */ int zombieEnterTime = 0; public void zombieEnterAction() {zombieEnterTime++;// 對自增量zombieEnterTime進行取余計算if(zombieEnterTime%300==0) {// 滿足條件就調用隨機生成僵尸方法,并將生成的僵尸加入到僵尸的集合中zombies.add(nextOneZombie());} }

最早時候我用的數據結構是數組,但在后續的編碼中發現,對僵尸對象有很多的遍歷以及增刪操作,數組的增刪操作是十分麻煩復雜的,所以我就換成了集合。在工作中也一樣,先思考在編碼,選擇正確的數據結構往往能起到事半功倍的效果。

植物入場的設計,是我當時自認為很精妙的一個點。先說一下當時在編碼中發現的問題。首先植物入場時是在滾輪機上的,滾輪機上的移動就會涉及到追擊和停止的問題。追擊的方式當然是追前一個植物卡牌,但當第一個植物卡牌被選中放置到草地上后,那該如何追擊呢?

最開始我的做法是給植物多加幾個狀態來解決這個問題,但是發現狀態過多會導致if判斷中的條件將大大增加,并且在嘗試后還是沒有實現想要的效果,于是我就將植物集合一分為二,在后面的游戲功能設計中,回頭過來看才發現將植物集合分為滾輪機上的集合和戰場上的集合實在是太精妙了。請聽我娓娓道來:

// 滾輪機上的植物,狀態為stop和wait private List<Plant> plants = new ArrayList<Plant>(); // 戰場上的植物,狀態為life和move -move為被鼠標選中移動的狀態,這里設計不合理,會引發后面的一個BUG private List<Plant> plantsLife = new ArrayList<Plant>(); // 植物在滾輪機上的碰撞判定 public void plantBangAction() {// 遍歷滾輪機上植物集合,從第二個開始for(int i=1;i<plants.size();i++) {// 如果第一個植物的y大于0,并且是stop狀態,則狀態改為waitif(plants.get(0).getY()>0&&plants.get(0).isStop()) {plants.get(0).goWait();}// 如果第i個植物y小于i-1個植物的y+height,則說明碰到了,改變i的狀態為stopif((plants.get(i).isStop()||plants.get(i).isWait())&&(plants.get(i-1).isStop()||plants.get(i-1).isWait())&&plants.get(i).getY()<=plants.get(i-1).getY()+plants.get(i-1).getHeight()) {plants.get(i).goStop();}/** 如果第i個植物y大于于i-1個植物的y+height,則說明還沒碰到或者第i-1個* 植物被移走了,改變i的狀態為wait,可以繼續往上走*/if(plants.get(i).isStop()&&plants.get(i).getY()>plants.get(i-1).getY()+plants.get(i-1).getHeight()) {plants.get(i).goWait();}}}// 檢測滾輪機上的植物狀態public void checkPlantAction1() {// 迭代器Iterator<Plant> it = plants.iterator();while(it.hasNext()) {Plant p = it.next();/** 如果滾輪機集合里有move或者life狀態的植物* 則添加到戰場植物的集合中,并從原數組中刪除*//** 現在發現把滾輪機上move狀態的植物添加到* 戰場上植物集合的最佳操作時間點應該是* 等植物狀態變為life后再添加。* /if(p.isMove()||p.isLife()) {plantsLife.add(p);it.remove();}}}

當然,滾輪機上的對植物狀態判斷的代碼還是顯得生澀,也正是自己想優化這段代碼時萌生了分享游戲設計過程和游戲代碼的念頭。那么下面就說說,這段代碼該如何優化:

// 先對狀態做下說明 // wait - 植物卡牌在滾輪機上移動狀態,因為是等著被鼠標選中,所以取名為wait // stop - 植物卡牌在滾輪機上停止狀態,有兩種情況,1 - 到頂了 2 - 撞到上一個卡牌了 // 開始對以下代碼進行優化 // 如果第i個植物y小于i-1個植物的y+height,則說明碰到了,改變i的狀態為stop // if((plants.get(i).isStop()||plants.get(i).isWait())&& // (plants.get(i-1).isStop()||plants.get(i-1).isWait())&& // plants.get(i).getY()<=plants.get(i-1).getY()+plants.get(i-1).getHeight() // ) { // plants.get(i).goStop(); // } // 優化后的代碼是這樣的 // 將一個復雜的boolean拆成多個if條件 if (!(plants.get(i).isStop()||plants.get(i).isWait()) {break; } if (!(plants.get(i-1).isStop()||plants.get(i-1).isWait())) {break; } if (!(plants.get(i).getY()<=plants.get(i-1).getY()+plants.get(i-1).getHeight())) {break; } plants.get(i).goStop();

boolean條件當然也可以進行優化,甚至還可以簡化一下植物的狀態。這里因為游戲的規則,僵尸只能攻擊在草坪上的植物,所以把帶放置的植物和草坪上的植物分為兩個集合,是十分合理精妙的。在判斷僵尸是否攻擊植物,只需要去遍歷草坪上的植物集合即可。如果不拆分,當要判斷僵尸是否攻擊植物的時候,需要遍歷的集合將是所有的植物集合,并且需要增加至少2個狀態來區分植物是在草坪上還是在滾輪機上,這段代碼想想就是又臭又長。
接下來該讓對象們都動起來了。之前說到在父類中的移動方法是抽象方法,在各自的子類中都進行重寫后,不同的對象移動方式就是各式各樣的了。

// 子彈移動 public void BulletStepAction() {for(Bullet b:bullets) {b.step();} } //僵尸移動 //設置移動間隔 int zombieStepTime = 0; public void zombieStepAction() {if(zombieStepTime++%3==0) {for(Zombie z:zombies) {//只有活著的僵尸會移動if(z.isLife()) {z.step();}}} }

看著代碼中對集合復雜的遍歷,不得不感概lambda表達式真是個好東西:

// 子彈移動 public void BulletStepAction() {bullets.forEach((b)->b.step());.... }

這里好像還是沒法展示lambda表達式強大的功能,請看下面的例子:

// 為了應對產品不斷變更的需求,前輩們總結經驗得出的設計模式已經能在一定程度上應對此問題 // 設計模式,聲明策略接口,在實現類中完成過濾邏輯 public List<Student> filterStudentByStrategy(List<Student> students, SimpleStrategy<Student> strategy){List<Student> filterStudents = new ArrayList<>();for (Student student : filterStudents) {if(strategy.operate(student)){filterStudents.add(student);}}return filterStudents; } // 當需求變更時,只需要在策略接口的實現類中,變更判斷邏輯即可 public interface SimpleStrategy<T> {public boolean operate(T t); }

但好像還是有點麻煩,又要寫接口,又要寫實現類,后續的維護也是個頭疼問題,這個時候救世主lambda表達式就出現了:

// 無需接口便可實現需求的快速變更 List<Student> lambdaStudents =students.stream().filter(student -> student.getGender()==1).collect(Collectors.toList());

讓我們看看上面到底發生了啥。首先將數據的集合流化,接著調用過濾方法,強大lambda表達式讓代碼變得簡潔,并且判斷條件的修改可在代碼中直接維護無需在策略接口的實現類維護。最后在轉成集合,返回一個滿足產品需求的集合。

回到正題,如何讓對象們打起來呢?下面以僵尸攻擊植物為例:

// 僵尸的超類中定義了僵尸的攻擊方法, // 由于僵尸們的攻擊行為是相同,所以這里是普通方法 // 僵尸攻擊植物 public boolean zombieHit(Plant p) {int x1 = this.x-p.getWidth();int x2 = this.x+this.width;int y1 = this.y-p.getHeight();int y2 = this.y+this.width;int x = p.getX();int y = p.getY();return x>=x1 && x<=x2 && y>=y1 && y<=y2; }

結合圖片來看,上述代碼應該就更好理解。黑框P代表植物,黑框Z代表植物,虛線是指兩者接觸的極限距離,當僵尸進入虛線內,就保證可以攻擊到植物。

// 僵尸攻擊 // 設置攻擊間隔 int zombieHitTime = 0; public void zombieHitAction() {if(zombieHitTime++%100==0) {for(Zombie z:zombies) {// 如果戰場上沒有植物,則把所有僵尸的狀態改為life/** 這里補充一下為什么要先將所有的僵尸的狀態先改成life狀態,也就是移動狀態* 因為下面對僵尸是否攻擊的植物的判斷,是從遍歷戰場上的植物集合開始的* 假如有只僵尸在吃植物,把戰場上唯一的一個植物吃掉了,* 那么僵尸的狀態將從攻擊改成移動呢?* 所以這里運用了逆向的思想,先將所有的僵尸改為移動狀態* 如果符合攻擊的條件,那么再改為攻擊狀態,* 即便是戰場上沒有植物,那么僵尸還依然是移動的狀態*/if(!z.isDead()) {z.goLife();}// 這里應該有個對戰場上植物集合的判斷在進行遍歷for(Plant p:plantsLife) {// 如果僵尸是活的,并且植物是活的,并且僵尸進入攻擊植物的范圍/** 這里有個BUG,僵尸竟然會攻擊鼠標選中還未放下的植物,* 所以下面的判斷條件中應該還需要移除被鼠標選中狀態下植物*/if(z.isLife()&&!p.isDead()&&z.zombieHit(p)&&!(p instanceof Spikerock)) {// 僵尸狀態改為攻擊狀態z.goAttack();// 植物掉血p.loseLive();}}}} }

如果出現了一些效果的偏移,造成的原因是圖片大小不一造成的坐標偏移,因為圖片都是網上找的,所以效果不是太理想。
至此,游戲的基本功能基本實現了。Java是一門面向對象的語言,萬物皆對象,特征皆屬性,行為皆方法。肉眼能看到的僵尸、植物、草坪都是對象,對象的特性比如血量、移動速度都是屬性,對象的行為比如移動、攻擊、死亡都是方法。

下面說說對游戲功能的優化。

游戲優化

1.放置植物的優化

已經放置過植物的草地不能再放置植物了。之前是將草地設計成empty和hold兩種狀態,現在來看其實只需要返回一個true和false就行了,將整個植物集合定義成一個虛擬的boolean集合即可。

2.移除植物的優化

設計思路是新增一個鏟子對象:

// 鏟子集合 private List<Shovel> shovels = new ArrayList<Shovel>(); // 鏟子入場 public void shovelEnterAction() {// 鏟子只有一把if(shovels.size()==0) {shovels.add(new Shovel());} } // 使用鏟子 Iterator<Shovel> it = shovels.iterator(); Iterator<Plant> it2 = plantsLife.iterator(); while(it.hasNext()) {Shovel s = it.next();// 如果鏟子是移動狀態,就遍歷植物集合if(s.isMove()) {while(it2.hasNext()) {Plant p = it2.next();int x1 = p.getX();int x2 = p.getX()+p.getWidth();int y1 = p.getY();int y2 = p.getY()+p.getHeight();if((p.isLife()||((Blover) p).isClick())&&Mx>x1&&Mx<x2&&My>y1&&My<y2&&shovelCheck) {// 移除植物it2.remove();// 移除鏟子it.remove();shovelCheck = false;}}} }



看著這極其復雜好像很厲害的代碼,我又萌生了痛下狠手的想法,但為了保持原生,我忍住。于是乎還發現了一個BUG。如果選中鏟子后,戰場上唯一的植物被僵尸吃掉了,那么這個鏟子將一直跟隨著鼠標無法達到使用后消除的效果了。解決方案當然也很簡單,當戰場上植物集合的size為0時,清空鏟子集合即可。

3.游戲可玩性的優化

上文在游戲設計中提到的擊殺僵尸后可能隨機獲得獎勵類型是這樣實現的。還是從設計分析開始,并非擊殺任何類型的僵尸都可以獲得獎勵,所以獎勵應該放在接口中:

public interface Award {// 獎勵接口/** 這里還是存在代碼不規范的問題* 接口的方式默認是public abstract* 接口中的變量默認是public static final* 這些默認的字段應該舍去*/// 全屏靜止public static final int CLEAR = 0;// 全屏清除public static final int STOP = 1;public abstract int getAwardType(); }

當僵尸死亡時,需要去判斷該僵尸是否有獎勵接口,如果有則執行相應獎勵的方法:

// 檢測僵尸狀態 public void checkZombieAction() {// 迭代器Iterator<Zombie> it = zombies.iterator();while(it.hasNext()) {Zombie z = it.next();// 僵尸血量小于0則死亡,死亡的僵尸從集合中刪除if(z.getLive()<=0) {// 判斷僵尸是否有獎勵的接口if(z instanceof Award) {Award a = (Award)z;int type = a.getAwardType();switch(type) {case Award.CLEAR:for(Zombie zo:zombies) {zo.goDead();}break;case Award.STOP:for(Zombie zom:zombies) {zom.goStop();timeStop = 1;//zombieGoLife();}break;}}z.goDead();it.remove();}// 僵尸跑進房子,而游戲生命減一,并刪除僵尸if(z.OutOfBound()) {gameLife--;it.remove();}} }

4.添加游戲背景音樂

bgm是一個游戲的靈魂之一。這里給游戲添加背景音樂,我的選擇是新建一條線程專門用來執行音樂的解析和播放:

// 啟動線程加載音樂 Runnable r = new zombieAubio("bgm.wav"); Thread t = new Thread(r); t.start();public class zombieAubio implements Runnable{// 讀音頻WAV格式專用線程private String filename;public zombieAubio(String wavfile){filename=wavfile;}......

這里需要注意的是,Java中解析音樂的API只支持WAV格式的文件,文件格式的轉換大多數音樂播放器都可以做到。

后續優化

1.植物種類的擴充及對應功能的實現

比如殺傷力最大的玉米加農炮。需要4個小玉米進行合成,那么在判斷是否能夠合成玉米加農炮時,需要對植物集合進行遍歷來做坐標的判斷,所以這邊建議最好把可合成的植物單獨放在一個集合中,這樣在做合成判斷的時候會簡單很多,當集合的size小于4時,就可以提示合成失敗了。冰凍西瓜的設計思路也是如此。

2.動作類僵尸的加入,如撐桿跳僵尸、跳舞僵尸等

說一下撐桿跳僵尸的設計思路,此類僵尸和其他僵尸相比,多了一種跳的行為,所以會有一個單獨的方法和單獨的狀態。并且,跳只能觸發一次,所以撐桿跳僵尸的狀態變化應該是行走->遇到植物跳過去->再遇到植物就開始攻擊,在執行狀態變化的時候,應該要去考慮當前的狀態是否還可跳躍。

3.當植物攻擊范圍內不存在僵尸時,植物停止攻擊

這個就簡單拉,在植物執行攻擊方法時,校驗一下是否有Y坐標相同的僵尸即可。

總結

以上是生活随笔為你收集整理的用Java语言,写一个植物大战僵尸简易版!的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

欧美天天射 | 欧美日韩在线播放一区 | 91看片在线免费观看 | 少妇bbbb搡bbbb搡bbbb | 国产又粗又猛又黄又爽视频 | 久久人人爽人人 | 免费在线观看污 | 五月婷婷欧美视频 | 最近最新中文字幕 | 久久免费看a级毛毛片 | 探花视频免费观看 | 日本爱爱片| 亚洲精品乱码久久久久久按摩 | 免费网址你懂的 | 亚洲免费永久精品国产 | 五月婷在线观看 | 欧美91成人网 | 丁香婷婷色综合亚洲电影 | 69久久久久久久 | 麻豆精品在线 | 久草在线资源免费 | 欧美在线观看视频一区二区三区 | 香蕉视频网站在线观看 | 少妇性aaaaaaaaa视频 | 免费www视频| 国产精品久久久久久久久费观看 | 精品亚洲男同gayvideo网站 | 色综合天天天天做夜夜夜夜做 | 一级淫片在线观看 | 婷婷丁香六月天 | 成人av在线直播 | 国产成人亚洲在线观看 | 国产在线欧美在线 | 不卡av电影在线观看 | 18+视频网站链接 | 开心激情网五月天 | 国产精品高潮呻吟久久av无 | 成人毛片在线视频 | 欧美大jb | a在线观看视频 | 国产 字幕 制服 中文 在线 | 国产在线久久久 | 特级毛片爽www免费版 | 91自拍91| 国产不卡在线观看 | 国产精品一区二区三区四区在线观看 | 91最新网址| 亚洲狠狠操 | 在线观看完整版免费 | 国产精品va视频 | 亚洲成色| 国产精品正在播放 | 亚洲成人精品影院 | 亚洲伦理精品 | 人人干,人人爽 | 亚洲激情综合 | 国产视频69| 999久久久久久久久久久 | 麻豆传媒视频在线 | 天天操天| 天天色天天色天天色 | 四虎影视成人永久免费观看视频 | 欧美在线视频不卡 | 久久艹艹| 亚洲一区免费在线 | 精品一区在线看 | 香蕉在线观看视频 | 日韩av中文字幕在线 | 亚洲女同ⅹxx女同tv | 成人免费在线播放 | 久久久免费电影 | 亚洲天天看 | 91大神免费在线观看 | 国产高清永久免费 | 国产自在线观看 | 丁香5月婷婷| 91精品办公室少妇高潮对白 | 免费看污网站 | 视频国产一区二区三区 | 国产精品一区二区三区在线 | 中文字幕在线观看免费观看 | 国产一区网 | 亚洲精选视频在线 | 亚洲精品中文在线资源 | 一区二区三区动漫 | 久久久久久久国产精品影院 | 五月亚洲综合 | 日韩视频一区二区在线观看 | av在线播放免费 | 人人狠狠综合久久亚洲婷 | 91精品久久久久久久久久入口 | 粉嫩aⅴ一区二区三区 | 黄av免费| 国产精品久久久区三区天天噜 | 日韩性xxxx | 日本久久中文 | 久久婷婷国产色一区二区三区 | 国产黄色片在线 | av中文字幕在线电影 | 日韩免费在线视频观看 | www.色午夜,com| www.亚洲视频.com | 麻豆视频免费入口 | 国产专区欧美专区 | 日韩在线观看三区 | 麻豆va一区二区三区久久浪 | 精品 一区 在线 | 欧美在线99 | 五月花丁香婷婷 | 91久久久久久久一区二区 | 国产精品涩涩屋www在线观看 | 成在人线av | av资源网在线播放 | 亚洲精品国偷拍自产在线观看 | 成人午夜精品 | 亚洲国产欧洲综合997久久, | 蜜臀aⅴ国产精品久久久国产 | 久久久久一区二区三区四区 | 亚洲欧洲日韩在线观看 | 在线免费观看一区二区三区 | 一区二区三区精品久久久 | 九色精品免费永久在线 | 免费观看的黄色片 | 99热精品在线观看 | 99精品免费久久久久久久久 | 激情欧美一区二区三区 | 精品美女在线视频 | 久久国产精品免费观看 | 国产精品久久人 | 国产精品入口麻豆 | 在线免费国产视频 | 又黄又爽又无遮挡的视频 | 综合久久2023 | 亚洲精品国偷拍自产在线观看蜜桃 | 91黄色在线观看 | 精品国产乱码久久久久久三级人 | 国产成人精品久久亚洲高清不卡 | 欧美一级在线观看视频 | 久草免费在线视频观看 | 日韩在线观看视频一区二区三区 | 视频三区 | 福利视频午夜 | 欧美一区二区三区激情视频 | 中文字幕av专区 | 99情趣网视频 | 狠狠色网 | 国产无区一区二区三麻豆 | 欧美日韩色婷婷 | 特级黄录像视频 | 97超碰人人模人人人爽人人爱 | 久久久久亚洲精品成人网小说 | 欧美,日韩 | 狠狠网亚洲精品 | 成人网444ppp | 国产午夜三级一区二区三 | 亚洲视屏一区 | 久草在线视频免费资源观看 | 大胆欧美gogo免费视频一二区 | 在线中文字幕av观看 | 婷婷久月 | 国产视频在线观看一区 | 天天鲁天天干天天射 | 亚洲一区欧美激情 | av先锋影音少妇 | av中文字幕网址 | 涩涩网站在线 | 久久久国产精品成人免费 | 麻豆av电影 | 中文欧美字幕免费 | 日韩黄色中文字幕 | 国产免费视频一区二区裸体 | 久久69精品久久久久久久电影好 | 精品国产乱码一区二 | 麻豆视频在线观看免费 | 91成人免费在线视频 | 久久久久久久久久久影视 | av黄网站| 日韩成人免费观看 | 亚洲婷婷网 | 中文字幕 欧美性 | 欧美十八 | 九九色在线观看 | 午夜精品久久久久久久爽 | av千婊在线免费观看 | 久久免费成人网 | 婷婷综合导航 | 91视频在线观看下载 | 中文字幕国产一区 | 欧美日韩1区2区 | 国产精品视频在线看 | 国产91欧美 | 狠狠插狠狠操 | 色网站在线免费观看 | 免费的成人av | 久久免费电影网 | 99精品在线观看视频 | 婷婷色在线视频 | 国产精品一区二区精品视频免费看 | 免费网站看v片在线a | 在线视频手机国产 | 亚洲国产欧洲综合997久久, | 三级毛片视频 | 国产精品短视频 | 免费久久网站 | 国内久久精品视频 | www成人av| 成人国产精品免费观看 | 国内99视频 | 欧美精品久久久久久久久免 | 久久久国产毛片 | 色综合天天在线 | 五月av在线| 99在线国产| 亚洲视频分类 | 精品国产一二三四区 | 国产一区二区视频在线 | 韩日精品在线 | 一本一本久久aa综合精品 | 91麻豆精品国产91久久久久久久久 | 91色九色 | 在线观看的黄色 | 久久在线免费观看视频 | 亚洲激情久久 | 日韩一区视频在线 | 久久免费电影网 | 久久国产a | 日日干影院 | 91精品国产一区二区在线观看 | 99精品热视频只有精品10 | 一区在线电影 | 高清在线一区 | 欧美成年人在线视频 | www五月天com| 免费av影视 | 国产亚洲视频在线免费观看 | 午夜国产一区二区三区四区 | 久久精品中文字幕一区二区三区 | 午夜精品久久久久久久99无限制 | 免费黄色在线网站 | 国产高清专区 | 91色一区二区三区 | 国产高清视频在线观看 | 欧美极度另类性三渗透 | 久久精品视频4 | 九九热在线精品视频 | 美女网站一区 | 亚洲精品va| 免费99精品国产自在在线 | 欧美一区在线观看视频 | 免费a网| 亚洲精品黄网站 | 日韩免费观看av | 美女一二三区 | 日韩超碰 | 成人三级网站在线观看 | 17婷婷久久www| 日韩在线视频免费看 | 不卡中文字幕在线 | 日韩免费在线观看视频 | 国内久久精品视频 | 国产免费亚洲 | 久久麻豆视频 | 久久1电影院 | 天天操天天射天天 | 99精品网站 | 欧美污在线观看 | 成人禁用看黄a在线 | 不卡视频在线 | 狠狠狠干| 久久精品视频播放 | 高清视频一区二区三区 | 国产一二区免费视频 | 久久亚洲成人网 | 亚洲黄色小说网 | 99久久日韩精品免费热麻豆美女 | 日韩精品一区二区久久 | 亚洲视频高清 | 久久婷亚洲五月一区天天躁 | 日韩久久精品一区二区 | 国产综合精品一区二区三区 | 黄色的片子 | 国产精品美女免费看 | 人人爽人人爽av | 欧美日韩不卡在线视频 | 在线视频 国产 日韩 | 国产字幕在线播放 | 99精品视频在线 | 国产精品久久久久aaaa九色 | 91成人免费看片 | 1024手机在线看 | 久久免费a | 中文字幕观看在线 | 麻豆传媒在线视频 | 超碰在线97观看 | 欧美欧美 | 久久免费视频网站 | 视频成人| 免费看片网站91 | 少妇bbw搡bbbb搡bbb | 日女人免费视频 | 二区三区av | 国产在线视频一区二区三区 | 91c网站色版视频 | 最新av在线播放 | 国产精品欧美久久久久久 | 婷婷久久精品 | 国产视频精品久久 | 久草观看视频 | 狠狠躁夜夜躁人人爽视频 | 国产涩涩在线观看 | 免费在线国产 | 久久tv| 久久成人毛片 | 久久狠狠婷婷 | 97免费在线观看视频 | 免费av免费观看 | 成人在线电影观看 | 国产96在线| 欧美一级片在线播放 | 91传媒91久久久 | 久草在线免费播放 | 激情综合五月网 | 中文字幕在线看视频国产中文版 | 米奇四色影视 | 99视频在线免费看 | 二区三区av| 91在线精品秘密一区二区 | 人人澡人人草 | 啪啪午夜免费 | 日韩在线字幕 | 九九热中文字幕 | 色老板在线视频 | 欧美成人精品欧美一级乱黄 | 亚洲精品xxxx| 美女免费视频黄 | 成人av电影免费在线观看 | 好看av在线| 色婷婷综合久久久 | 日本特黄一级片 | av免费网站 | 国产精品一区二区av日韩在线 | 日韩高清观看 | 日韩免费观看一区二区三区 | 中文字幕色在线视频 | 久久久999精品视频 国产美女免费观看 | 国产国语在线 | 午夜精品一区二区三区免费视频 | 久久精品网站视频 | 国产经典三级 | 9999国产精品 | 国产精品久久电影观看 | 在线免费观看黄色av | 国产精品6999成人免费视频 | 久久五月情影视 | 国产裸体视频bbbbb | 久久免费视频国产 | 粉嫩aⅴ一区二区三区 | 欧美aaa级片| 中文字幕在线播放日韩 | 国产一卡久久电影永久 | 国产在线视频不卡 | 一区视频在线 | 蜜臀av性久久久久av蜜臀妖精 | 91桃色国产在线播放 | 人人超碰97| 亚洲成人第一区 | 99久久99视频只有精品 | 国产成人a亚洲精品v | 久久久久亚洲精品国产 | 综合久久久久久久久 | 久久久夜色 | 国产精品涩涩屋www在线观看 | 天天操天天透 | 欧美另类交在线观看 | 中文字幕在线人 | 午夜影院一级 | 日韩精品一区二区三区免费视频观看 | 玖玖视频免费在线 | 色91在线 | 深夜国产福利 | wwwwww色| 国产h在线播放 | 四虎8848免费高清在线观看 | 久草视频在线免费播放 | а天堂中文最新一区二区三区 | 国产精品嫩草影院123 | 亚洲精品小视频 | 中文在线字幕免费观看 | 国产视频中文字幕在线观看 | 亚洲欧洲久久久 | 91毛片在线观看 | 亚洲视频久久久 | 日韩av一区在线观看 | 500部大龄熟乱视频使用方法 | 人人干网| 国产在线自| 国产自在线观看 | 亚洲欧洲精品一区二区精品久久久 | 亚洲在线观看av | 国产自偷自拍 | 激情五月婷婷激情 | 欧美日韩国产精品一区 | 免费看污片 | 激情在线五月天 | 久久免视频 | 2021国产精品 | 久久精品一区二区国产 | 欧美资源 | 日韩在线视频一区二区三区 | 丁香婷婷激情五月 | 91精品视频在线免费观看 | 国产 日韩 欧美 自拍 | 国产精品久久久久久久婷婷 | 久久综合九色欧美综合狠狠 | 亚洲精品免费在线播放 | 久久精品久久精品久久39 | 91成人看片 | 黄色毛片在线观看 | 中文字幕乱在线伦视频中文字幕乱码在线 | 久久丁香网 | www.午夜| 亚洲日本欧美 | 欧美性精品 | 久久黄色美女 | 国产高清免费 | 国产一级做a爱片久久毛片a | 久久精品99国产精品 | 色网站国产精品 | 亚洲天堂网视频 | 国产盗摄精品一区二区 | 香蕉97视频观看在线观看 | 国产成人一区二 | 国产精品一区二区久久 | 一区在线观看 | 91专区在线观看 | 国产精品色在线 | 一区二区三区四区免费视频 | 99久久精品国产一区二区成人 | 免费看片黄色 | 91九色国产 | 国产在线观看av | 国产日韩欧美视频 | 午夜精品久久久99热福利 | 97在线资源| 欧美极度另类性三渗透 | 成人午夜av电影 | 国产录像在线观看 | 97免费中文视频在线观看 | 日韩专区视频 | 欧美性猛片, | 可以免费观看的av片 | 色在线观看网站 | www.狠狠干 | 在线中文字幕视频 | 碰超在线97人人 | avav99 | 久久久久亚洲精品中文字幕 | 四虎成人精品永久免费av | 国产亚洲精品久久久久久无几年桃 | 久久精品xxx | 99高清视频有精品视频 | 91精品国产电影 | 四虎成人精品永久免费av九九 | 香蕉免费 | 国内视频在线 | 欧美日韩不卡在线观看 | 狠狠狠色丁香婷婷综合久久88 | 中文字幕精品www乱入免费视频 | 97免费公开视频 | 中文字幕亚洲欧美日韩 | 手机看片1042 | 成人97视频一区二区 | 91探花视频 | 国产成人久久av免费高清密臂 | 99热国产在线中文 | 在线 视频 一区二区 | 91av播放 | 大胆欧美gogo免费视频一二区 | 91九色综合| 成人av电影在线观看 | 精品国产99国产精品 | 欧美 日韩 国产 中文字幕 | 亚洲成色777777在线观看影院 | 日韩精品最新在线观看 | 欧美一级视频一区 | 在线观看免费黄色 | 人人射人人澡 | 蜜桃视频日本 | 91探花国产综合在线精品 | 欧美一级片 | 激情五月六月婷婷 | 国产福利中文字幕 | 久久综合操 | 精品久久久免费视频 | 丁香六月婷| 天天干天天操人体 | 在线午夜电影神马影院 | 一区二区欧美日韩 | 国产亚洲视频中文字幕视频 | 国产福利一区二区在线 | 97超碰在线资源 | 亚洲第一区在线观看 | 在线黄色免费av | 五月激情久久 | 国产一区二区免费 | 亚洲波多野结衣 | 99视频国产精品免费观看 | 婷婷亚洲五月色综合 | 久久高清av| 丁香婷婷综合激情五月色 | 亚洲精品自在在线观看 | 爱爱一区 | 99r在线观看 | 欧美性大胆 | 久操伊人| 九九热有精品 | 在线99热 | 亚洲成av人片在线观看www | 久久精品www人人爽人人 | 色婷婷在线播放 | 免费黄色网址网站 | 国产日韩在线看 | 免费成人av电影 | 波多野结衣一区二区三区中文字幕 | 激情av在线播放 | 在线av资源| 在线成人国产 | 国产香蕉久久 | 日韩综合一区二区三区 | 日本精品在线看 | av资源免费看 | 国产国产人免费人成免费视频 | 国产小视频你懂的 | 中文字幕免费看 | 久久久久国产精品一区二区 | 狠狠躁夜夜躁人人爽视频 | 日本爱爱片 | 国产青春久久久国产毛片 | 91激情视频在线 | 欧美激情视频久久 | 国产精品久久久久久久久婷婷 | 亚洲精品乱码久久久久久蜜桃欧美 | 国产 精品 资源 | 成人影片在线免费观看 | 五月天伊人网 | 激情五月激情综合网 | 国产91影视| 国产美女在线精品免费观看 | 成年人黄色免费网站 | 九九九九色 | 丰满少妇在线观看资源站 | 国产精品成人a免费观看 | 免费a v观看 | 黄色av在 | 日韩精品在线观看视频 | 精品国产伦一区二区三区免费 | 久久久久久综合网天天 | 99国产精品久久久久久久久久 | 综合色久 | 99视频一区 | 天堂入口网站 | 天天干,天天射,天天操,天天摸 | 国产精品久久久一区二区三区网站 | 欧美精品国产综合久久 | 久久精品美女视频网站 | 手机在线视频福利 | 欧美成年黄网站色视频 | 亚洲精品国 | 在线天堂视频 | 国产色婷婷 | 婷婷激情综合 | 999热线在线观看 | 99久久精 | 久久电影网站中文字幕 | 久久久久福利视频 | 国产一区久久 | 99视频在线| 国产一级在线看 | 天天爽天天爽夜夜爽 | 香蕉在线视频观看 | 中文字幕免费播放 | 激情综合六月 | 人成免费网站 | 中中文字幕av | 欧美日韩高清国产 | 日韩成人精品在线观看 | 久久久久久久久久久久久久电影 | 中文字幕频道 | 国产福利在线不卡 | 欧美日韩视频在线观看免费 | 在线看国产视频 | 久久亚洲免费视频 | av一级片在线观看 | 欧美日韩一区二区久久 | 欧美日韩在线视频免费 | 亚洲激情av | 久久精品人 | 激情丁香5月| 国产一区二区午夜 | 天天操天天干天天爱 | 亚洲天天在线 | 日韩国产精品久久 | 国产精品第二十页 | 亚洲老妇xxxxxx | 亚洲精品欧美精品 | 国产激情久久久 | 日韩欧美视频免费在线观看 | 亚洲激精日韩激精欧美精品 | 久久久久成人精品免费播放动漫 | 天天色天天射综合网 | 欧美最新另类人妖 | 337p欧美| 有码中文在线 | 99久久精品一区二区成人 | 99综合电影在线视频 | av中文字幕在线免费观看 | 日韩一区二区三区免费视频 | 国产一级视频在线 | 亚洲三级在线播放 | 欧美激精品 | 在线看的av网站 | 国产理论一区二区三区 | 成人午夜在线观看 | 中文字幕在线视频国产 | www.神马久久 | 国产精品免费在线播放 | 97免费在线观看视频 | 国产福利午夜 | 久久成人高清视频 | 激情五月综合 | 精品一区二区av | 亚洲免费在线播放视频 | 免费看日韩片 | 亚色视频在线观看 | 黄色三级av | 99久久久成人国产精品 | 玖玖视频国产 | 成人永久免费 | 亚洲精品视频在 | 国产精品欧美日韩在线观看 | 在线视频第一页 | 毛片一二区 | 国产精品亚洲视频 | 久久久久久久久久久久久9999 | 在线观看色网 | 五月天视频网站 | 亚洲国产精品999 | 久久精品久久久久电影 | 日韩欧美高清在线观看 | 日日干天夜夜 | 91自拍视频在线 | 欧美人体xx | 国产精品永久免费 | 国产在线视频在线观看 | 99热这里有 | 亚洲视频在线免费观看 | 天天插天天干天天操 | 在线综合 亚洲 欧美在线视频 | 国产一级在线免费观看 | 亚洲一级在线观看 | 成年人免费在线播放 | av免费在线观 | 日韩欧美视频免费在线观看 | 国产一在线精品一区在线观看 | 在线观看免费 | 午夜色婷婷 | 色网站在线免费观看 | 99精品一级欧美片免费播放 | 天天干天天操天天爱 | 69视频在线播放 | 国产精品99久久久久久宅男 | 亚洲永久国产精品 | 2022久久国产露脸精品国产 | 亚洲丁香日韩 | 日韩精品久久久 | 日日夜夜天天操 | 波多野结衣久久精品 | 深夜国产在线 | 成人av网站在线观看 | 丝袜美女在线 | 久久手机视频 | 超碰电影在线观看 | 蜜臀av一区 | 九精品 | 亚洲成人午夜在线 | 成人在线视频免费观看 | 日韩精品欧美专区 | 亚洲成av | 精品在线播放 | 高清av中文在线字幕观看1 | 色吧av色av | 久久久影院一区二区三区 | 国产精品成人自产拍在线观看 | 国产精品中文字幕在线观看 | 久久精品区 | 国产精品免费一区二区三区 | 日韩另类在线 | 久久国精品| 丁香婷婷综合五月 | 亚洲国产三级在线 | 免费观看一级一片 | 久久99网站 | av中文天堂在线 | 99高清视频有精品视频 | 欧美一级乱黄 | 亚洲最新视频在线 | 欧美性天天 | 黄色小说在线免费观看 | 超碰97中文| 美女网站视频色 | 久久这里只有精品9 | 日韩成人邪恶影片 | 91九色网站 | 成人免费在线观看av | 韩国av免费在线观看 | 欧美了一区在线观看 | 91成人免费在线视频 | 亚洲精品国产视频 | 午夜精品久久久久久久99热影院 | 久久a热6 | 6080yy精品一区二区三区 | 成人亚洲网 | 国产精品专区在线 | 香蕉影视app | 18女毛片| 麻豆va一区二区三区久久浪 | 日韩亚洲在线观看 | 国产精品video爽爽爽爽 | av色图天堂网 | 国产99久久久国产精品成人免费 | 欧美久草网 | 久久99精品久久久久久清纯直播 | 国产精品久久久久久久午夜片 | 日韩久久久久久久久 | 欧美成人在线免费 | 99精品在线观看 | 日韩在线免费小视频 | 久草资源免费 | 国产一级精品绿帽视频 | 国产91影院| 超碰夜夜 | 国产成人av在线影院 | 97超碰香蕉 | 久久久久电影 | 国产一区自拍视频 | 久久久精品网站 | 色婷婷在线观看视频 | 天天操天天能 | 射久久| 国产小视频福利在线 | 日本3级在线观看 | 蜜桃av人人夜夜澡人人爽 | 亚洲三级国产 | 欧美一二区在线 | 中文免费 | www.一区二区三区 | 91资源在线观看 | 最新超碰| 欧洲精品码一区二区三区免费看 | 国产在线观看免费观看 | 国产精品成人一区二区三区吃奶 | 色婷婷99 | 国产二区免费视频 | 伊人中文网 | 91中文字幕 | 激情视频免费在线观看 | 久久婷婷精品 | 黄网站a| 在线观看视频黄色 | 久久免费公开视频 | 九九九九九九精品任你躁 | 伊人资源站 | 婷婷激情站| 久久99精品久久久久蜜臀 | 丁香九月婷婷 | 中文字幕乱码日本亚洲一区二区 | 国产一区视频免费在线观看 | 日本精品视频免费 | 色婷婷在线观看视频 | 色婷婷欧美 | 成年人在线观看免费视频 | av综合在线观看 | 日韩精品视频第一页 | av一级一片 | 97超碰人人在线 | 国产精品爽爽久久久久久蜜臀 | 日批视频在线播放 | 99免费在线视频 | 天天射天天爽 | 日韩一区二区三区在线观看 | 国产91在线 | 美洲 | 国产高清不卡 | 欧美在线视频精品 | 国内精品久久久久久久久久久久 | 91麻豆精品国产午夜天堂 | 91丨九色丨蝌蚪丨老版 | 麻豆视频免费入口 | 亚洲aⅴ乱码精品成人区 | 六月丁香在线视频 | 日本视频精品 | 日日干日日操 | 亚洲精品视频免费在线观看 | 精品一区二区影视 | 日韩亚洲国产精品 | 日韩欧美在线观看一区二区三区 | 久久国产影视 | 中文字幕在线第一页 | 美女网站免费福利视频 | 日韩羞羞| 久久国产精品免费一区二区三区 | 天天色天天射天天操 | 国产精品电影在线 | 91av综合| 福利电影一区二区 | 免费视频久久 | 久久久久久久久黄色 | 精品国产乱码一区二区三区在线 | av成人动漫在线观看 | 成人午夜电影免费在线观看 | 粉嫩av一区二区三区四区 | 国产精品久久久久四虎 | 91看片淫黄大片在线播放 | 九九久久精品视频 | 日韩激情小视频 | 日韩天天综合 | av中文字幕不卡 | 国产在线无 | 69av网| 99国产精品视频免费观看一公开 | 免费看污黄网站 | 丁香六月在线观看 | 久久精品—区二区三区 | 久久无码av一区二区三区电影网 | 在线黄网站 | 欧美大香线蕉线伊人久久 | 国产91精品久久久久 | 免费观看完整版无人区 | 久草在线视频看看 | 久久精品牌麻豆国产大山 | 精产嫩模国品一二三区 | 欧美午夜视频在线 | 久久久久久久久综合 | 久久久久电影 | 日操干| 免费三级黄色 | 91视频免费网址 | 91av电影在线| 国产精品白虎 | 国产一区二区在线播放 | 免费a v观看 | 久久综合色天天久久综合图片 | 免费看日韩| 国产成人av在线 | 国产精品欧美 | 国产精品美女在线观看 | 亚洲国产色一区 | 久久久久久久久久网站 | 免费视频一级片 | 日韩一二三 | 久久这里只有精品9 | 亚洲成熟女人毛片在线 | 国产三级香港三韩国三级 | www.午夜视频| 91av视频在线免费观看 | 亚洲女人天堂成人av在线 | 国产综合视频在线观看 | 国产在线高清 | 免费a网址 | 精品一区二区在线观看 | 香蕉视频网址 | 国产麻豆精品久久一二三 | 欧美一区二区在线免费观看 | 色国产精品 | 精品人人爽| 欧洲视频一区 | 99爱视频在线观看 | 国产精品视频永久免费播放 | 免费av视屏| 国产精品久久久久久久久久直播 | 天天曰天天爽 | 亚洲 欧美 国产 va在线影院 | 久久久久久国产精品免费 | 国产裸体视频网站 | 婷婷色视频 | 这里有精品在线视频 | 97超碰国产精品女人人人爽 | 欧美一区二区三区在线 | a视频在线播放 | 免费看三级黄色片 | 天天射成人 | 久久久国产影视 | www.久久99| 免费精品国产va自在自线 | 狠狠色狠狠色合久久伊人 | 久久美女高清视频 | 国产在线观看一 | 黄色国产成人 | 少妇18xxxx性xxxx片| 中文字幕av最新 | 91cn国产在线 | 日韩精品一区电影 | 国产成人一二片 | 黄色一级在线免费观看 | 亚洲欧美久久 | www.av免费观看 | 久久久免费观看视频 | 中字幕视频在线永久在线观看免费 | 久久都是精品 | 天天操人人要 | 亚洲国产精品500在线观看 | 成人av电影免费 | 日本性动态图 | 五月天中文字幕mv在线 | 成年人视频免费在线 | 欧美日韩性视频在线 | 日韩免费看 | 国产午夜精品久久久久久久久久 | 色天天天| 久久高清| 超级碰碰碰免费视频 | 色综合久久66| 蜜臀aⅴ国产精品久久久国产 | 超碰97网站 | 亚洲一级片av | 天天亚洲综合 | 丁香六月婷婷开心 | 草久久影院 | 99色亚洲| 手机看片1042| 麻豆果冻剧传媒在线播放 | 久久在线免费视频 | 精品一区二区影视 | 欧美成人精品在线 | 五月天久久久久 | 人人草人| av中文字幕第一页 | 精品国产伦一区二区三区观看方式 | 黄色a在线 | 久久高清国产视频 | 青青草国产在线 | 欧美日韩一二三四区 | 亚洲一区网站 | 国产精品成人一区二区三区吃奶 | 一二三四精品 | 欧美与欧洲交xxxx免费观看 | 国产精品丝袜久久久久久久不卡 | 在线免费高清视频 | 一区在线免费观看 | 国内精品久久久久久久影视简单 | 国产精品入口66mio女同 | 天天综合导航 | 在线观看香蕉视频 | 免费日韩 精品中文字幕视频在线 | 91麻豆精品国产91久久久无限制版 | 天天干天天综合 | 日本中文字幕视频 | 久久国产精品99精国产 | 亚洲精品久久视频 | 91在线小视频 | 天堂av在线网址 | 在线直播av | 久久伊人婷婷 | 麻豆成人精品 | 亚洲免费在线看 | 在线观看中文字幕第一页 | 精品一区二区电影 | 国产精品观看 | 久久久精品久久日韩一区综合 | 免费看的国产视频网站 | 欧美三级在线播放 | 欧美午夜a | 激情五月视频 | 国产h在线播放 | 日韩国产精品久久久久久亚洲 | 五月婷婷激情网 | 97在线观看免费高清完整版在线观看 | 日韩久久影院 | 色综合久久久久综合体桃花网 | 九九久久免费视频 | 91精品人成在线观看 | 日韩在线一区二区免费 | 欧美日韩高清一区二区 | av在线一二三区 | 综合天堂av久久久久久久 | 夜夜躁狠狠躁日日躁视频黑人 | 国产又粗又硬又爽视频 | 久久96 | 国产中文视频 | 深夜国产福利 | 日日草夜夜操 | 亚洲第一伊人 | 久久精品一 | 天天躁日日躁狠狠躁av麻豆 | 久久久久久视频 | 欧美日韩综合在线 | 久久精品福利视频 | 四虎影视成人永久免费观看亚洲欧美 | 麻豆视频国产 |