精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

久久久精品性| 国产成年人视频网站| 日韩精品人妻中文字幕有码| 国产一二三在线观看| 久久夜色电影| 中文字幕一区二区三区四区| 992tv成人免费影院| 国产成人三级视频| 一区二区视频网| 色天天色综合| 精品久久久久久亚洲国产300| 91pron在线| 强制高潮抽搐sm调教高h| 欧美日韩尤物久久| 国产日产欧美精品一区二区三区| 欧美一区第一页| 日本免费福利视频| 91福利在线免费| 成人小视频免费在线观看| 欧美成在线视频| 美女日批在线观看| 暖暖在线中文免费日本| 国产精品一区不卡| 欧美国产日韩一区| 99久久久无码国产精品性波多 | 免费av不卡在线| 少妇淫片在线影院| 久久色中文字幕| 日韩美女主播视频| 色噜噜日韩精品欧美一区二区| 午夜激情电影在线播放| 久久先锋资源网| 粉嫩av四季av绯色av第一区| 久久久久亚洲av无码专区| 亚洲2区在线| 亚洲国产sm捆绑调教视频| 国产一区二区三区四区五区在线| 国产农村妇女aaaaa视频| 日韩影视高清在线观看| 日韩欧美一区二区久久婷婷| 日韩一级性生活片| 日本私人网站在线观看| 视频一区二区三区中文字幕| 日韩小视频网址| 免费国偷自产拍精品视频| 福利一区视频| 一区二区三区在线视频免费观看| 国产日韩欧美一区二区| 精品人妻av一区二区三区| 亚洲国产午夜| 伊人久久久久久久久久久久久| jizzzz日本| 国产深夜视频在线观看| 久久综合狠狠综合| 精选一区二区三区四区五区| www.亚洲激情| 欧美久久99| 精品亚洲精品福利线在观看| 不卡的av中文字幕| 国产精品第一国产精品| 欧美又粗又大又爽| www成人免费| 免费a级毛片在线观看| 韩国一区二区三区| 欧美与欧洲交xxxx免费观看| 亚洲黄色三级视频| 日韩av自拍| 亚洲国产精品99久久| 91欧美视频在线| 欧美97人人模人人爽人人喊视频| 亚洲国产三级在线| 91成人在线观看喷潮教学| 午夜视频成人| 91蝌蚪porny成人天涯| 92看片淫黄大片欧美看国产片| 日本三级小视频| 中文字幕一区二区精品区| 亚洲视频综合网| 久久久久久久久久影视| 久久悠悠精品综合网| 亚洲欧洲国产伦综合| 亚洲精品自拍视频在线观看| 一区二区美女| 精品久久久久久久久久久院品网| 黄大色黄女片18第一次| 日韩中文字幕一区二区高清99| 日韩h在线观看| 亚洲 自拍 另类 欧美 丝袜| 玛雅亚洲电影| 精品国产户外野外| 欧美大尺度做爰床戏| 午夜激情电影在线播放| 欧美猛男gaygay网站| 日本xxxxxxx免费视频| av成人福利| 欧美吻胸吃奶大尺度电影 | 久久久久久www| 国产美女av在线| 国产精品欧美经典| 日本在线视频不卡| 国产小视频在线| 91视频com| 欧美日韩一级在线 | 欧美日韩福利视频| 日韩精品一区二区三区在线视频| 欧美成人有码| 裸体女人亚洲精品一区| 午夜精品一区二区三级视频| 亚洲欧洲一级| 91嫩草在线视频| 91片黄在线观看喷潮| 久久精品免费看| 国产日本欧美视频| 136福利视频导航| 久久亚洲精华国产精华液 | 日韩欧美国产1| youjizz亚洲女人| 日本一区二区在线看| 国内精品免费午夜毛片| 久久9999久久免费精品国产| 在线国产日韩| 欧美性受xxxx白人性爽| 国产高清不卡视频| 粉嫩aⅴ一区二区三区四区五区| www.成人av| 天堂在线资源网| 久久人人97超碰com| 日本五级黄色片| 91麻豆精品国产综合久久久 | 一级黄色片国产| 成人在线精品| 日韩精品一区二区三区四区 | 久热av在线| 精品久久久中文| 亚洲激情 欧美| 欧美视频二区| 99三级在线| 日本孕妇大胆孕交无码| 精品美女国产在线| 国产精品嫩草69影院| 女人香蕉久久**毛片精品| 91久久精品美女高潮| 天天在线视频色| 欧美视频日韩视频| 无套白嫩进入乌克兰美女| 国产一级成人av| 国产亚洲欧美日韩精品| 国产精品精品软件男同| 久久se精品一区精品二区| 99国产在线视频| 男女免费观看在线爽爽爽视频| 日韩美女视频在线| 久久久综合久久久| 99精品久久只有精品| 亚洲成人网上| 丁香花在线电影小说观看| 日韩欧美国产电影| 日韩和一区二区| 麻豆91在线观看| 中文字幕日韩一区二区三区| 中文在线资源| 亚洲欧美日韩精品| 精品午夜福利在线观看| 成人深夜福利app| 久久免费视频3| 一区二区三区| 欧美成人中文字幕在线| 日韩一区免费视频| 中文字幕一区二区日韩精品绯色| 热久久久久久久久| 欧美成人日韩| 久久av一区二区三区亚洲| 黄色在线播放网站| 精品美女被调教视频大全网站| 国产精久久久久久| 91视视频在线直接观看在线看网页在线看| 国产xxxxx在线观看| 一区二区三区四区精品视频| 最近2019年好看中文字幕视频 | 国产精品扒开做爽爽爽的视频| 欧美日韩在线视频一区| 一级在线免费视频| 亚洲高清影视| 国产精品一区二区久久| 全色精品综合影院| 欧美日韩精品欧美日韩精品 | 国产成人小视频在线观看| 精品毛片在线观看| 欧美视频精品一区| 五月综合色婷婷| 蜜桃视频在线观看一区| 欧美在线一区二区三区四区| 在线免费看h| 日韩在线观看免费全| 国精品人妻无码一区二区三区喝尿| 欧美激情综合网| 国产一区亚洲二区三区| 五月精品视频| 成人激情在线观看| 午夜在线视频播放| 亚洲精品456在线播放狼人| 久久精品国产亚洲av无码娇色| 久久久久久久久伊人| 哪个网站能看毛片| 欧美一区91| 日韩一区免费观看| 欧美一区二区三区红桃小说| 97在线看福利| 欧美zozo| 欧美大胆人体bbbb| 中文字幕久久久久| 黄色一区二区在线观看| 欧美日韩在线视频免费播放| 国产成人精品免费网站| 91n.com在线观看| 欧美丰满老妇| 亚洲专区中文字幕| 国产韩日精品| 奇门遁甲1982国语版免费观看高清| 免费在线视频一级不卡| 亚洲风情亚aⅴ在线发布| 99在线观看精品视频| 欧美日韩的一区二区| 国产一区二区视频免费| 国产精品网站一区| 亚洲18在线看污www麻豆| 久久亚洲风情| 国产成人精品视频免费看| 精品99久久| 91久久国产精品| 外国成人毛片| 久久久久久成人| 国产一级在线| 亚洲欧美一区二区三区久久| 天天av综合网| 欧美乱妇15p| 国产精品第6页| 日本乱人伦aⅴ精品| 人人澡人人澡人人看| 国产精品女同一区二区三区| 亚洲一区 欧美| 欧美国产丝袜视频| 国产成人精品视频免费| 成人午夜视频在线观看| aaa黄色大片| 成人av第一页| 亚洲黄色小视频在线观看| 日韩精品乱码免费| 国产成人永久免费视频| 欧美天天在线| 日本www在线视频| 久久亚洲图片| 日本xxxx黄色| 黄网站免费久久| 黄页网站在线看| 不卡视频免费播放| 亚洲国产精品成人综合久久久| 91原创在线视频| 久久久久久国产精品无码| 国产欧美精品一区二区色综合| 亚洲最大成人综合网| 成人动漫中文字幕| jizz日本免费| 欧美国产日韩一二三区| 久久中文字幕精品| 亚洲精品精品亚洲| 日韩精品人妻中文字幕| 91官网在线观看| 一本色道久久综合精品婷婷| 精品久久久久久久久久久久久久| av片免费观看| 欧美亚一区二区| 精品国产伦一区二区三区| 亚洲国产高清福利视频| 国产高清免费在线播放| www.亚洲男人天堂| 久草在线视频福利| 国产福利视频一区| 国产精品亚洲欧美一级在线| 国产精品久久久对白| 亚洲一区导航| 国产一区二区三区av在线| 精品日产免费二区日产免费二区| 亚洲第一页在线视频| 99精品免费视频| 成人在线国产视频| 久久一二三区| 制服下的诱惑暮生| 久久久久久久性| 国产性一乱一性一伧一色| 色综合天天狠狠| 亚洲va在线观看| 精品久久久久久| 又骚又黄的视频| 亚洲成色777777女色窝| avtt亚洲| 中文字幕无线精品亚洲乱码一区 | 亚洲乱码一区二区三区| 黄色av成人| 妺妺窝人体色www看人体| 久久久人人人| av在线天堂网| 国产精品久久久久久久久免费相片| 日本在线观看视频网站| 欧美夫妻性生活| 精品无吗乱吗av国产爱色| 久久久久久久av| 一区二区三区| 亚洲a∨一区二区三区| 日韩激情一区| 欧美精品99久久| 国产成人免费在线| 在线精品视频播放| 91一区二区在线| 欧美日韩一级大片| 欧美日韩国产影片| 国产一二三区在线视频| 欧美亚洲另类视频| 国产96在线亚洲| 蜜桃网站在线观看| 日韩午夜电影| 亚洲国产日韩在线一区| 中文字幕在线免费不卡| 一级片在线免费播放| 亚洲欧美一区二区三区四区| 超碰资源在线| 国产精品 欧美在线| 亚洲成人一品| 青青草国产免费| 国产成人在线视频网址| 男人操女人的视频网站| 五月天亚洲婷婷| 亚洲第九十九页| 亚洲人成电影网站色…| 麻豆网站免费在线观看| 精品一区二区免费在线观看| 精品少妇人妻av免费久久洗澡| 丰满亚洲少妇av| 久久综合激情网| 亚洲аv电影天堂网| 香蕉视频国产在线| 在线一区二区日韩| 性欧美freehd18| 91青青草免费在线看| 亚洲91精品| 国产在线观看中文字幕| 91美女片黄在线观看| 日本熟妇毛耸耸xxxxxx| 日韩av在线导航| 中文字幕在线官网| 欧美二级三级| 欧美午夜不卡影院在线观看完整版免费 | 在线观看免费网站黄| 国产欧美精品一区二区| 欧美黄色大片在线观看| 午夜久久福利视频| 亚洲欧美区自拍先锋| 男人天堂av在线播放| 亚洲欧美日韩另类| 青青久久精品| 毛片在线视频观看| 美国av一区二区| 欧美日韩黄色网| 精品久久久久久久久久久久久久久| 91九色在线播放| 久久综合色一本| 在线看片一区| 野花社区视频在线观看| 欧美中文字幕一区| 欧美日韩伦理片| 国产精品小说在线| 欧美国产综合| av直播在线观看| 欧美日韩国产一级二级| 神马午夜伦理不卡| 欧美中文娱乐网| 国产一区二区三区免费看 | 一级网站在线观看| 亚洲国产精品一区二区www | 国产精品―色哟哟| 亚洲国产欧美另类| 日本欧美国产在线| 亚洲成人一区| 精品夜夜澡人妻无码av| 欧美绝品在线观看成人午夜影视| 欧美xxxx黑人又粗又长| 欧美一区二区三区精美影视| 国产一区二区三区久久久| 日韩精品久久久久久久酒店| 在线日韩av观看| 久久精品凹凸全集| 91亚洲精品久久久蜜桃借种| 亚洲成a人v欧美综合天堂下载| www黄色在线观看| 国产aⅴ夜夜欢一区二区三区| 一区二区三区中文| 亚洲精品成人无码| 在线免费观看日本一区| 色呦呦网站在线观看| 水蜜桃一区二区三区|