精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

暴打七夕青蛙—HarmonyOS服務卡片小游戲

開發 OpenHarmony
七夕節,令我“幸福”的是,被熱心市民送來了七夕青蛙,聽取一天了蛙聲一片。吃飽了一整天的狗糧后,有點撐著,于是決定加班加點,用服務卡片實現了一個簡單的小游戲:暴打七夕青蛙!游戲雖簡單,但玩起來是真的爽!

[[419006]]

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com

前言

七夕節,令我“幸福”的是,被熱心市民送來了七夕青蛙,聽取一天了蛙聲一片。吃飽了一整天的狗糧后,有點撐著,于是決定加班加點,用服務卡片實現了一個簡單的小游戲:暴打七夕青蛙!游戲雖簡單,但玩起來是真的爽!

效果展示視頻

效果視頻

效果圖

暴打七夕青蛙——HarmonyOS服務卡片小游戲-鴻蒙HarmonyOS技術社區
暴打七夕青蛙——HarmonyOS服務卡片小游戲-鴻蒙HarmonyOS技術社區

編寫過程

更改程序標簽和程序的圖標

在resources文件下的zh.element中的string.json中修改如下,就把應用的名字修改為“七夕青蛙”,而主頁面也會從“Hello World!” 變成 “GoodBye World!”

暴打七夕青蛙——HarmonyOS服務卡片小游戲-鴻蒙HarmonyOS技術社區

在config.json文件修改icon的值,引用到media里面的青蛙。

暴打七夕青蛙——HarmonyOS服務卡片小游戲-鴻蒙HarmonyOS技術社區

創建JS卡片

編寫卡片的樣式

游戲卡片的結構非常非常非常非常簡單,就是一個div容器,通過設置div容器的背景圖來實現游戲效果。playGame卡片的hml代碼如下:

  1. <div style="width:100100%;" > 
  2.     <div style="flex_direction:column;width:100%;height:100%;background-image:{{background}} ;"onclick="messageEvent" > 
  3.     </div> 
  4. </div> 

GamePanel的樣式稍微復雜一點,但是其實也很簡單。需要設置兩個變量,得分score和倒計時countdown,其中得分設置成一個上下結構。hml代碼如下:

  1. <div> 
  2.     <div class="normal_container"
  3.         <div class="pic_title_container" onclick="settings"  > 
  4.             <div style="flex-direction: row;" > 
  5.             <!-- 得分 --> 
  6.                 <div style="flex-direction: column;width: 50%;margin-top: 20px;" > 
  7.                     <text style="text-align: center;width: 100%;font-size: 25px;"
  8.                         SCORE 
  9.                     </text> 
  10.                     <text style="text-align: center;width: 100%;font-size: 35px;color: ghostwhite;"
  11.                         {{ score }} 
  12.                     </text> 
  13.                 </div> 
  14.             <!-- 倒計時 --> 
  15.                 <text style="text-align: center;width: 40%;font-size: 60px;color: brown;" > 
  16.                     {{ countDown }} 
  17.                 </text> 
  18.             </div> 
  19.             <div style="margin-right: 10px;" > 
  20.                 <button onclick="start" type="capsule" style="opacity: 0.5;margin-right: 40px;text-align: center;width: 40%;">開始</button> 
  21.                 <button onclick="stop" type="capsule" style="opacity: 0.5;margin-right: 40px;text-align: center;width: 40%;">停止</button> 
  22.             </div> 
  23.         </div> 
  24.     </div> 
  25. </div> 

給變量賦初值

在playGame卡片的index.json文件中,修改“data”如下圖,默認一開始是沒有青蛙出現的。

暴打七夕青蛙——HarmonyOS服務卡片小游戲-鴻蒙HarmonyOS技術社區

在GamePanel卡片的index.json文件中,修改“data”如下圖

暴打七夕青蛙——HarmonyOS服務卡片小游戲-鴻蒙HarmonyOS技術社區

設置卡片的動作事件

“actions”數組是所有事件的集合,下面跟著每個事件的名稱,名稱里面又包含事件的類型“action”和攜帶的參數“params”。

在playGame卡片的index.json文件中,修改“actions”如下圖

暴打七夕青蛙——HarmonyOS服務卡片小游戲-鴻蒙HarmonyOS技術社區

在GamePanel卡片的index.json文件中,修改“actions”如下圖

暴打七夕青蛙——HarmonyOS服務卡片小游戲-鴻蒙HarmonyOS技術社區

編寫游戲部分

七夕青蛙的隨機出現

七夕青蛙的出現上文提到過是通過設置div容器的背景圖片來實現,所以可以通過產生一個隨機數的方式來隨機地設置div容器的背景來實現游戲過程,因此需要把div的背景設置成變量,并添加一個onclick標簽。

  1. //兩種背景圖的路徑 
  2. private static final String frog="url(\"/common/frog1.png\")"
  3. private static final String hole="url(\"/common/hole.png\")"
  4. public String rand_bg() 
  5.    { 
  6.        String bg; 
  7.        double randnumber=Math.random(); 
  8.        if(randnumber>0.65)//隨機數大于0.65時把返回的字符串對應青蛙圖,這個數值可以自行設定 
  9.            bg=frog; 
  10.        else 
  11.            bg=hole; 
  12.        return bg; 
  13.    } 

創建一個數據體來存儲卡片的信息,并使用MAP將其存儲起來

不同卡片的回調事件都是共用一個回調方法的,所以想要區分到底是哪一種,哪一個卡片發出的回調,就需要把卡片的信息:卡片的名稱,卡片的ID,卡片的相關參數等記錄下來。這里采用編寫一個卡片數據類來存儲1*2格式的卡片的信息。

  1. public class GameWigetData 
  2.     public String background; 
  3.     public long FormId; 
  4.     public GameWigetData()  
  5.     { 
  6.         super(); 
  7.     } 
  1. public static Map<Long, GameWigetData> gameWidgetDataMap=new HashMap<>()//鍵是FormId,值是數據體 

修改onCreateForm()方法

onCreateForm()方法在兩種情況被調用。第一種是上滑呼出卡片的時候,這時候上滑卡片是哪一種卡片,就會調用一次onCreateForm()方法生成一張該種卡片;

第二種情形是長按應用,然后點擊"服務卡片",此時會顯示應用的所有卡片,并每一張卡片都會回調一次onCreateForm()方法并生成一個卡片,當選擇了其中某一張卡片添加到桌面之后,其他卡片回調onDeleteForm()方法來刪除卡片。所有卡片都是調用同一個方法一起生成的,所以需要對卡片的名稱進行一次判斷,以確定卡片的種類。在onCreateForm()中添加如下代碼:

  1. if(formName.equals("GamePanel"))//如果是游戲控制面板卡片,則有如下操作 
  2.         { 
  3.             if(gamePanelFormId==0) 
  4.             {//如果放置了兩個,那么只有放置的第一個有作用,應該游戲控制面板只需要一個 
  5.                 gamePanelFormId=formId; 
  6.             } 
  7.         } 
  8. //如果是游戲卡片,那么創建一個數據體實例,并把它的卡片id和數據體實例一同傳入Map中 
  9.         else if(formName.equals("playGame")) 
  10.         { 
  11.             GameWigetData gameWidgetData = new GameWigetData(); 
  12.             gameWigetDataMap.put(formId, gameWidgetData); 
  13.            // System.out.println("formID->"+formId); 
  14.         } 

修改onDeleteForm()方法

在onDeleteForm()方法中,要補充兩種卡片刪除時的設置,這里很重要,一開始我沒有對游戲卡片進行設置,結果運行會拋出沒有對應的FormId的錯誤,查看卡片的時候所有卡片都會調用onCreateForm()方法,然后所有12卡片的ID都寫入Map里面,但是當其中一個卡片放置到桌面,而其他卡片回調onDeleteForm()進行刪除的時候,12卡片的信息并沒有從Map中移除。這就會導致并不是每一個Map中的FormId都有對應的卡片。

  1. if(gamePanelFormId==formId){ 
  2.            gamePanelFormId=0; 
  3.        } 
  4. else
  5.            gameWigetDataMap.remove(formId); 
  6.  
  7.        

編寫變量的更新方法

由于后面的操作需要頻繁地用到更新,修改卡片上的變量的操作,所以在進行下面的操作之前,我們先編寫一個修改變量的方法。

  1. //更新值是字符串時 
  2.  private void updateWidget(long formId,String key, String value) { 
  3.         try { 
  4.             ZSONObject zsonObject = new ZSONObject(); 
  5.             zsonObject.put(key, value); 
  6.             FormBindingData formBindingData = new FormBindingData(zsonObject); 
  7.             updateForm(formId, formBindingData); 
  8.         } catch (Exception e) { 
  9.             System.out.println(e.getMessage()); 
  10.         } 
  11.     } 
  12. //更新值是整數時 
  13.     public void updateWidget(long formId,String keyint value) { 
  14.         updateWidget(formId, key, String.valueOf(value)); 
  15.  
  16.     } 

修改onTriggerFormEvent()方法

在這個游戲中,總共有三個點擊事件需要響應:開始鍵,停止鍵,打青蛙。同樣的,這三個事件共用一個回調方法,因此需要通過事件所攜帶的參數來判斷到底是哪一個事件回調了方法。在onTriggerFormEvent()中添加如下代碼:

  1. //接受事件傳遞的參數 
  2.  ZSONObject zsonObject=ZSONObject.stringToZSON(message); 
  3.  String message1=zsonObject.getString("message"); 
  4.  
  5. //如果是開始鍵觸發的事件,則把開始標志設置為真 
  6.         if (message1.equals("start")) 
  7.         { 
  8.             startFlag=true
  9.             System.out.println("start"); 
  10.         } 
  11. //如果是停止鍵觸發的事件,則把開始標志設置為假,并重置面板上的數據 
  12.         else if (message1.equals("stop")) 
  13.         { 
  14.             startFlag = false
  15.             score = 0; 
  16.             countdown1 = 60; 
  17.             updateWidget(gamePanelFormId,"score",score); 
  18.             updateWidget(gamePanelFormId,"countdown",countdown1); 
  19.         } 
  20. //如果是“打青蛙”事件 
  21.         else 
  22.         { 
  23.             if(startFlag)//如果游戲在進行中 
  24.             { 
  25.                 //判斷現在面板中是不是青蛙 
  26.                 GameWigetData gameFormData=gameWigetDataMap.get(formId); 
  27.                 if(gameFormData.background.equals(frog)) 
  28.                 { 
  29.                     score =score+10;//達到一個加十分 
  30.                     System.out.println("現在的分數是"+score); 
  31.                     gameFormData.background=hole;//打完重新設置為洞 
  32.                     updateWidget(gamePanelFormId,"score",score); 
  33.                     updateWidget(formId,"background",gameFormData.background); 
  34.                 } 
  35.             } 
  36.             else 
  37.                 System.out.println("游戲已經結束了"); 
  38.         } 

編寫游戲線程

在onStart()方法中添加游戲線程如下:

  1. if(gameThread==null
  2.         {//如果還未創建游戲線程,則創建游戲線程 
  3.             gameThread=new Thread(() -> { 
  4.                 while(true
  5.                 { 
  6.                     try { 
  7.                         Thread.sleep(50); 
  8.                         if(startFlag) 
  9.                         { 
  10.                             //對所有的卡片都隨機地設置背景 
  11.                             for(GameWigetData gameWigetData:gameWigetDataMap.values()) 
  12.                             { 
  13.                                 gameWigetData.background=tool.rand_bg(); 
  14.                             } 
  15.                             //對所有的1*2卡片進行更新 
  16.                             for(long gameWigetFormId:gameWigetDataMap.keySet()) 
  17.                             { 
  18.                                 GameWigetData gameWigetData=gameWigetDataMap.get(gameWigetFormId); 
  19.                                 updateWidget(gameWigetFormId,"background",gameWigetData.background); 
  20.                             } 
  21.                         } 
  22.                         Thread.sleep(750); 
  23.                     }catch (Exception e) 
  24.                     { 
  25.                         System.out.println(e.getMessage()); 
  26.                         startFlag=false
  27.                     } 
  28.                 } 
  29.             }); 
  30.             gameThread.start(); 
  31.         } 

編寫倒計時線程

在onStart()方法中編寫倒計時線程如下:

  1. if(countDownThread==null
  2.         { 
  3.             countDownThread=new Thread(new Runnable() 
  4.             { 
  5.                 public void run() 
  6.                 { 
  7.                     while(true
  8.                     { 
  9.                         try{ 
  10.                             Thread.sleep(50); 
  11.                             if(startFlag) 
  12.                             { 
  13.                                 if(countdown1>0) 
  14.                                 { 
  15.                                     updateWidget(gamePanelFormId,"countdown",countdown1); 
  16.                                     countdown1--; 
  17.                                     System.out.println("現在剩余的時間是"+countdown1); 
  18.                                 } 
  19.                                 else//countdown==0的時候,復位 
  20.                                 { 
  21.                                     updateWidget(gamePanelFormId,"countdown",0); 
  22.                                     startFlag=false
  23.                                     countdown1=60; 
  24.                                     System.out.println("游戲結束!"); 
  25.                                 } 
  26.                             } 
  27.                         Thread.sleep(1000); 
  28.                         }catch (Exception e) 
  29.                         { 
  30.                             System.out.println(e.getMessage()); 
  31.                         } 
  32.                     } 
  33.                 } 
  34.             }); 
  35.             countDownThread.start(); 
  36.         } 

項目踩的小坑

1.score要設置成靜態變量,否則被釋放,導致盡管打中很多次都只能到10分,而不能夠往上累積。

2.onDeleteForm()方法要記得從Map中remove掉已經刪除掉的卡片的ID

最后

最后祝有情人終成眷屬啦,祝單身狗早日脫單!還有就是感謝我那群為我瞎操心的朋友們!(文后附上脫單壓縮包)

Card_Game_the_frog.zip

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com

 

責任編輯:jianghua 來源: 鴻蒙社區
相關推薦

2021-08-20 14:26:17

鴻蒙HarmonyOS應用

2022-10-19 15:27:36

數獨Sudoku鴻蒙

2018-08-19 14:30:42

女性分析網站

2015-08-21 17:10:03

云安全

2012-08-24 10:49:51

備份恢復

2020-08-26 06:04:25

信息泄露密鑰加密信息安全

2023-08-22 21:39:25

2021-08-25 09:54:51

鴻蒙HarmonyOS應用

2021-08-23 10:49:02

鴻蒙HarmonyOS應用

2011-08-06 23:25:49

筆記本導購

2021-08-13 10:38:23

人工智能AI深度學習

2018-08-17 16:30:20

2021-08-15 19:00:14

算法floydDijkstra

2019-08-07 17:17:54

華為

2009-08-25 21:17:09

2017-08-23 10:01:00

搜狗

2012-08-23 13:37:04

傲游瀏覽器

2013-08-13 09:24:25

程序員七夕節
點贊
收藏

51CTO技術棧公眾號

久久国产精品亚洲77777| 精品欧美午夜寂寞影院| 中文字幕在线不卡国产视频| 91免费视频国产| 免费一级肉体全黄毛片| 秋霞综合在线视频| 欧美日韩中文精品| 大伊香蕉精品视频在线| 野外性满足hd| 日本久久二区| 午夜久久电影网| 亚洲五月六月| 少妇av在线播放| 老司机一区二区| 2019av中文字幕| 日韩av手机在线免费观看| 白嫩白嫩国产精品| 欧美日本一道本| av免费中文字幕| 欧美韩日亚洲| 日本一区二区在线不卡| 国产一区不卡在线观看| 在线观看xxxx| 亚洲免费网址| 国模私拍视频一区| 国产1区2区3区4区| 三区四区不卡| 亚洲午夜av久久乱码| 亚洲欧美激情一区二区三区| 成人国产精品入口免费视频| 五月天视频一区| 欧美日韩视频免费| sm国产在线调教视频| 国产日韩欧美高清在线| 久久99精品久久久久久久青青日本| 国产精品一级二级| 日本欧美一区二区三区乱码| 91wwwcom在线观看| 日韩av男人天堂| 欧美日韩国产亚洲一区| 久久精品91久久香蕉加勒比| 亚洲精品国产熟女久久久| 国产日韩三级| 精品国产乱码久久久久久浪潮| 天天色天天综合网| 欧美视频第一| 欧美猛男gaygay网站| 色婷婷狠狠18| 全球最大av网站久久| 色一区在线观看| av网站在线观看不卡| 爱草tv视频在线观看992| 亚洲香肠在线观看| 男人添女荫道口图片| 青草av在线| 亚洲成人综合在线| 天天夜碰日日摸日日澡性色av| 免费污视频在线| 亚洲国产中文字幕在线视频综合| 99国产精品白浆在线观看免费| 在线看一级片| 亚洲国产成人av网| av之家在线观看| 亚洲欧美小说色综合小说一区| 精品成人av一区| 久久婷婷五月综合色国产香蕉| 伊人久久国产| 欧美性猛交xxxx黑人交| www.夜夜爽| 日本一区精品视频| 亚洲第一男人天堂| 国产精品揄拍100视频| 香蕉视频一区二区三区| 一本色道久久88精品综合| 国产黄色片在线| 欧美精品入口| 8x海外华人永久免费日韩内陆视频| 制服.丝袜.亚洲.中文.综合懂色| 99香蕉国产精品偷在线观看 | av播放在线观看| 国产精品毛片高清在线完整版| 在线视频91| 伦理av在线| 欧美日韩中文字幕| 五月天中文字幕在线| 免费观看性欧美大片无片| 亚洲第一级黄色片| 黄色av免费播放| 欧美日韩国产欧| 国产99久久精品一区二区| 亚洲无码精品在线观看| 国产91富婆露脸刺激对白| 精品免费二区三区三区高中清不卡| 国产视频网站在线| 亚洲视频你懂的| 国产超级av在线| 一区二区三区| 亚洲精品综合精品自拍| 韩国一级黄色录像| 亚洲欧美春色| 成人黄视频免费| 国产黄在线看| 亚洲mv大片欧洲mv大片精品| 久久婷婷国产91天堂综合精品| 999精品嫩草久久久久久99| 日韩高清欧美高清| 亚洲成人生活片| 日本网站在线观看一区二区三区| 高清视频一区| 麻豆视频在线观看免费| 婷婷成人综合网| 成人免费播放视频| 国内精品久久久久久久久电影网| 欧美第一页在线| 在线观看国产小视频| 97se亚洲国产综合在线| 中文字幕免费高| 欧美色片在线观看| 日韩福利在线播放| 国产成年人免费视频| 国产资源在线一区| 先锋在线资源一区二区三区| 午夜久久中文| 精品国产自在久精品国产| 青青草华人在线视频| 久久深夜福利| 欧美激情第六页| а√在线中文在线新版| 欧美tickling挠脚心丨vk| 天天操天天摸天天舔| 日韩在线a电影| 欧美精品亚洲精品| 成人免费网站观看| 精品国产伦一区二区三区免费 | 国产在线拍偷自揄拍精品| 日韩专区一区二区| 天天综合天天做天天综合| 免费啪视频在线观看| 亚洲乱码电影| 91最新国产视频| 国产激情在线| 日韩欧美综合一区| 日韩va亚洲va欧美va清高| 久久国产夜色精品鲁鲁99| 日韩av一级大片| 91精品美女| 中文字幕日韩欧美在线| 少妇无套内谢久久久久| 欧美极品xxx| 视频在线观看免费高清| 日韩亚洲一区在线| 国产在线视频一区| gogo在线高清视频| 日韩欧美第一区| 国产在线观看免费视频今夜| 国产不卡免费视频| 婷婷五月综合缴情在线视频| 538任你躁精品视频网免费| 色综合久久中文字幕综合网小说| 国产福利第一页| 亚洲一区二区三区国产| 波多野结衣影院| 久久五月激情| 亚洲欧美日韩在线综合 | 欧美三级视频在线播放| a资源在线观看| 久久精品99国产精品日本| 日韩视频在线免费播放| 伊人久久噜噜噜躁狠狠躁| 欧美激情精品久久久久久蜜臀| 亚洲精品无码久久久| 午夜电影网亚洲视频| 在线观看日本中文字幕| 麻豆精品在线播放| 国产成人在线小视频| 色综合久久中文| 国产精品视频网| 国产又色又爽又黄刺激在线视频| 精品国产伦一区二区三区观看方式 | 婷婷精品在线| 国产一区在线播放| 色yeye免费人成网站在线观看| 亚洲黄一区二区| 欧美日韩 一区二区三区| 综合在线观看色| 国产+高潮+白浆+无码| 丝袜美腿亚洲综合| 浴室偷拍美女洗澡456在线| 国产精品中文字幕制服诱惑| 国产精品爱久久久久久久| av在线播放观看| 亚洲美女性视频| av网站在线免费看| 日韩欧美中文第一页| 国产激情无码一区二区三区| 成人av午夜影院| 自拍偷拍一区二区三区四区 | 99草草国产熟女视频在线| 66视频精品| 蜜桃麻豆www久久国产精品| 亚洲伦理久久| 奇米影视亚洲狠狠色| av毛片在线免费| 一区二区国产精品视频| 亚洲第一视频在线播放| 欧美视频在线播放| 国产精品6666| 亚洲天堂a在线| 一级黄色性视频| www.日本不卡| 91精产国品一二三| 美女一区二区久久| 欧美黄色免费影院| 99国产精品视频免费观看一公开 | 亚洲国产影院| 欧美三级午夜理伦三级老人| 国内精品伊人久久久| 久久国产精品高清| 视频一区在线| 91久久久精品| 久久免费影院| 日韩av电影国产| 涩涩涩在线视频| 欧美精品xxx| www在线免费观看视频| 国产一区二区三区日韩欧美| 手机福利在线| 亚洲大尺度美女在线| 国产成人精品一区二三区四区五区 | 中文字幕av一区二区三区| 波多野结衣先锋影音| 国产精品一区二区久激情瑜伽 | 久久久久女人精品毛片九一| 亚洲一二三级电影| 欧美精品一区二区成人| 最新国产成人在线观看| 激情高潮到大叫狂喷水| 亚洲国产精品精华液2区45| 欧美图片第一页| 久久人人爽爽爽人久久久| 亚洲一区二区三区四区五区六区| 99热这里都是精品| 久久人妻少妇嫩草av无码专区| 成人深夜在线观看| 亚洲国产精品第一页| 国产盗摄一区二区三区| 中文字幕一二三| 国产黑丝在线一区二区三区| 亚洲精品一区二区18漫画| 国产精品一二三四五| 日本成人在线免费| 成人动漫av在线| 国产精品无码午夜福利| 久久久久久黄色| 伊人影院综合网| 18欧美乱大交hd1984| 欧产日产国产v| 亚洲午夜国产一区99re久久| 国产精品不卡av| 色香蕉久久蜜桃| 中文字幕精品一区二区精| 欧美久久久久中文字幕| 国产黄色美女视频| 亚洲精品mp4| 蜜桃视频在线入口www| 中文字幕精品一区久久久久 | 7777kkkk成人观看| 深夜成人福利| 91久热免费在线视频| 亚洲精品视频一二三区| 国产欧美丝袜| 精品日韩在线| 在线视频一二三区| 亚洲视频www| 五月婷婷丁香综合网| 国产一本一道久久香蕉| 西西大胆午夜视频| 国产精品视频一二| 青青草在线观看视频| 欧美性感美女h网站在线观看免费| 激情五月婷婷网| 91麻豆精品久久久久蜜臀| 成人午夜免费福利| 亚洲一区999| 污片在线免费观看| 国产成人+综合亚洲+天堂| 四虎精品成人免费网站| 在线国产精品播放| 18在线观看的| 国产成人福利网站| 视频一区日韩精品| 亚洲福利av在线| 精品电影一区| 天天碰免费视频| 成人成人成人在线视频| 亚洲a∨无码无在线观看| 夜夜嗨av一区二区三区网页| 91麻豆制片厂| 亚洲国产综合人成综合网站| 亚洲天堂视频在线播放| 精品少妇一区二区三区免费观看| 久热av在线| 久久久伊人欧美| 欧美国产视频| 欧美日韩精品久久| 亚洲午夜91| 奇米视频7777| 国产三级精品三级| 日韩欧美a级片| 日韩欧美久久久| 麻豆影视在线观看_| 日韩美女在线播放| 给我免费播放日韩视频| 在线看视频不卡| 日韩和的一区二区| 中文字幕丰满孑伦无码专区| 亚洲影视资源网| 国产精品美女一区| 在线观看欧美www| 日韩三区在线| 欧美凹凸一区二区三区视频| 影音先锋在线一区| 丰满人妻一区二区三区53视频| 日本一区二区三区四区在线视频 | caoporn免费在线| 国产精品欧美久久久| 在线日韩一区| 免费成人午夜视频| 波多野结衣在线一区| 欧美成人三级在线观看| 91麻豆精品国产自产在线| 91在线视频| 国产精品视频免费在线观看| 精品国产乱码久久久| 99久久久无码国产精品6| 99国产精品99久久久久久| 国产精品成人久久| 亚洲丁香婷深爱综合| 欧美人与禽猛交乱配| 亚洲自拍av在线| 中文字幕一区二区三三| 一级黄色片在线免费观看| 亚洲欧洲成人精品av97| 国产精品国产av| 久久久精品美女| 日韩中文字幕在线一区| 欧美一区二区三区综合| 国产精品66部| 福利一区二区三区四区| 亚洲黄色av网站| 欧美日韩精品免费观看视完整| 奇米影视首页 狠狠色丁香婷婷久久综合| 国产精品色网| 亚洲v国产v欧美v久久久久久| 91国模大尺度私拍在线视频| av中文在线| 91免费综合在线| 国产精品多人| jlzzjizz在线播放观看| 色综合久久88色综合天天| 国产小视频免费在线观看| 国产精品露脸av在线| 国产精品成人一区二区不卡| 精品国产午夜福利在线观看| 亚洲尤物视频在线| 香蕉av在线播放| 国产精品十八以下禁看| 亚洲老妇激情| 黄色a一级视频| 欧美在线观看你懂的| 黄网址在线观看| 国产一区二区三区四区五区在线| 久久精品女人| 久久久久久久久久97| 精品盗摄一区二区三区| 色戒汤唯在线| 色乱码一区二区三区熟女| 成人看片黄a免费看在线| 日韩免费av网站| 久久香蕉国产线看观看av| 国产精品调教视频| 在线观看免费成人av| 一区二区三区四区av| 亚洲av成人无码网天堂| 国产日韩欧美视频在线| 国产精品成人一区二区网站软件| 3d动漫精品啪啪一区二区下载| 欧美日韩精品二区第二页| 欧美极品少妇videossex| 日韩高清专区| 成人aa视频在线观看| 中文字幕在线播出| 久久免费精品视频| 欧美大片aaaa| 不卡一区二区在线观看| 欧美一区二区三区啪啪| 婷婷电影在线观看| 成人国产在线看| 国产精品久久毛片a| 性高潮久久久久久久久久|