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

HTML 5游戲制作之五彩連珠(動畫)

開發(fā) 前端
另外,我們不光飛入的動作需要重繪,游戲開始后玩家還要點擊移動一個泡泡到另外一個格子,所以這里也要重繪。那繪制的信息這么多,整個重繪工作都要交給game來進行,game控制所有的父元素。

上一節(jié)中,我們留下了一個flyin的方法沒有介紹,這里想單獨寫一篇html5的動畫實現(xiàn)。

在第二節(jié)中我們實現(xiàn)了畫一個泡泡,并且成功的擦除了泡泡,但當時也說了別把棋盤的線給擦掉了,所以做了偏移量。所以說html5 Canvas還是低級, 沒有圖層的概念,擦掉再想補回來,怎么補?  答案就是重繪。  沒錯,整個Canvas重繪,這樣就能不用擔心補哪里了。雖然帶來了性能的損失,但絕對減少的編碼難度。而且計算機的能力也不差這點損失。那么重繪的話,我們在Canvas是上所有的需要繪制的對象都應(yīng)該有draw方法。這是必須的。另外,所有的元素都有個上下的概念,所以要先繪制下面的,再繪制上面的。 而這個上下就得靠 子元素的概念,這樣在父元素繪制完畢后遍歷其子元素繪制,就不用擔心掩蓋的問題。

如果想把ready區(qū)的3個泡“飛入”棋盤,就需要讓Canvas在泡移動的時候進行重繪,泡泡不動時不需要重繪。泡泡的移動很容易實現(xiàn),只要改變他的x,y坐標即可。如果想達到動畫的效果,就得在改變坐標期間,定時重繪,可以使用setInterval來實現(xiàn)。

另外,我們不光飛入的動作需要重繪,游戲開始后玩家還要點擊移動一個泡泡到另外一個格子,所以這里也要重繪。那繪制的信息這么多,整個重繪工作都要交給game來進行,game控制所有的父元素。 

  1. start: function () {   
  2.     this.map.init();   
  3.     this.ready.init();   
  4.     this.draw();   
  5.     this.canvas.onclick = this.onclick;   
  6. },   
  7. over: function () {   
  8.     alert("GAME OVER");   
  9. },   
  10. draw: function () {   
  11.     this.ctx.clearRect(0, 0, 400, 600);   
  12.     this.ctx.save();   
  13.     this.map.draw();   
  14.     this.ready.draw();   
  15.     this.ctx.restore();   
  16. },   
  17. play: function (action, interval) {   
  18.     var me = this;   
  19.     play = setInterval(function () {   
  20.         action();   
  21.         me.draw();   
  22.     }, interval || 1);   
  23. },   
  24. stop: function () {   
  25.     clearInterval(play);   
  26.     this.draw();   
  27.     //console.log(this.ready.bubbles.length);   
  28. }, 

game.start就是初始化所有的父元素,

game.over自然不必說,只是這里沒有寫具體代碼,結(jié)束時應(yīng)該無法繼續(xù)操作泡泡。

game.draw 繪制所有的父元素。

game.play 就是重繪方法,需要重繪時掉用此方法。接收2個參數(shù),***個是重繪時需要做的動作,interval是繪制的間隔時間。不同的動作可能間隔不一樣。

可能這種實現(xiàn)是野路子,真正的重繪應(yīng)該是游戲開始后就不聽的調(diào)用重繪方法,而不是具體哪里調(diào)用,只是在具體的精靈(每個元素)Update自己狀態(tài)就像我這里的action。  這里我們暫且這樣實現(xiàn),后面如果達不到需求再重構(gòu)這個重繪的代碼,畢竟核心的代碼不變,只是改改機制 不是大問題。

game.stop 停止重繪,又調(diào)用了一次draw,是為了保證***的繪制沒問題。

接下來考慮下flyin飛入的實現(xiàn)。知道起始和結(jié)束的xy坐標,飛入的路徑不是問題,無非是x y的加加減減,那么動畫方面,我們的game.play的action就是來加減ready.bubbles的xy坐標。飛入的邏輯并非這么簡單,首先需要3個沒染色空格,如果不足3個,那就GameOver了,所以map需要提供一個返回3個空格子的方法,另外,飛入之后ready區(qū)要重新生成新的泡泡,而這幾個被飛的泡泡需要刪除,并且map要對3個空格子進行染色。 這就完成了整個飛入效果。

其實還有一個邏輯就是 飛入完畢后檢查是否有哪些泡泡可以被消除,這個我們后面再講。

先看獲取3個空格的方法: 

  1. getEmptyBubbles: function () {   
  2.     var empties = [];   
  3.     this.bubbles.forEach(function (row) {   
  4.         row.forEach(function (bubble) {   
  5.             if (!bubble.color) {   
  6.                 empties.push(new Bubble(bubble.x, bubble.y));   
  7.             }   
  8.         });   
  9.     });   
  10.     if (empties.length <= 3) {   
  11.         game.over();   
  12.         return [];   
  13.     }   
  14.    
  15.     var result = [];   
  16.     var useds = [];   
  17.     for (var i = 0; i < empties.length; i++) {   
  18.         if (result.length == 3) {   
  19.             break;   
  20.         }   
  21.         var isUsed = false;   
  22.         var ra = game.getRandom(empties.length);   
  23.         for (var m = 0; m < useds.length; m++) {   
  24.             isUsed = ra === useds[m];   
  25.             if (isUsed) break;   
  26.         }   
  27.         if (!isUsed) {   
  28.             result.push(empties[ra]);   
  29.             useds.push(ra);   
  30.         }   
  31.     }   
  32.     console.log(useds);   
  33.     return result;   
  34. },  

獲取3個隨機的空格還是挺多代碼的。。。然后就是flyin的實現(xiàn)了。

首先定一個一個status,來存飛入的狀態(tài)。3個都飛完畢才能做后面的邏輯。Bubble對象也為此增加了px和py倆個成員(即Bubble的實際坐標),這樣才能控制每個像素的移動。 其實在計算飛入路徑時我寫了很久的代碼,別看現(xiàn)在就這么幾行,開發(fā)過程中還是頗費力。各種詭異的飛行。。。開始是按x++ y++遞增飛行的,這樣就是45°角飛行,但顯然飛行線路(起始到結(jié)束的線)的傾斜度不是45°,那就會出現(xiàn)先飛完x或y,再走直線,很傻的。所以要用斜率來計算當前的y坐標。而x的坐標可以固定常熟移動。我畫了一個斜率的公式,忘記的同學可以看看下。根據(jù)長寬的比率,就能計算當前的y值。

  1. flyin: function () {   
  2.     var emptys = game.map.getEmptyBubbles();   
  3.     if (emptys.length < 3) {   
  4.         //GAME OVER   
  5.         game.over();   
  6.         return;   
  7.     }   
  8.     var me = this;   
  9.     var status = [0, 0, 0];   
  10.     game.play(function () {   
  11.         if (status[0] && status[1] && status[2]) {   
  12.             game.stop();   
  13.             status = [0, 0, 0];   
  14.             me.bubbles = [];   
  15.             me.genrate();   
  16.             return;   
  17.         }   
  18.     
  19.         for (var i = 0; i < me.bubbles.length; i++) {   
  20.             if (status[i]) {   
  21.                 continue;   
  22.             }   
  23.             var target = emptys[i];   
  24.             var x2 = target.px + game.map.startX - me.startX;   
  25.             var y2 = target.py + game.map.startY - me.startY;   
  26.     
  27.             var current = me.bubbles[i];   
  28.     
  29.             var tmpWidth = 2;   
  30.             if (current.px < x2) {   
  31.                 current.py = ((y2 - current.py) / (x2 - current.px)) * tmpWidth + current.py;   
  32.                 current.px += tmpWidth;   
  33.             }   
  34.             else if (current.px > x2) {   
  35.                 current.py = ((y2 - current.py) / (current.px - x2)) * tmpWidth + current.py;   
  36.                 current.px -= tmpWidth;   
  37.             }   
  38.             else {   
  39.                 current.py += tmpWidth;   
  40.             }   
  41.             if (current.py > y2) {   
  42.                 current.py = y2;   
  43.             }   
  44.     
  45.             if (current.px > x2) {   
  46.                 current.px = x2;   
  47.             }   
  48.     
  49.     
  50.             if (current.px == x2 && current.py == y2) {   
  51.                 status[i] = 1;   
  52.                 current.x = target.x;   
  53.                 current.y = target.y;   
  54.                 game.map.addBubble(current);   
  55.                 console.log(1);   
  56.             }   
  57.         }   
  58.     });   
  59.     

既然我們已經(jīng)實現(xiàn)了動畫效果,那么接下來順便再實現(xiàn)一個動畫效果,就是點擊泡泡時,泡泡要做出響應(yīng)(就是忽閃忽閃的),要不然用戶都不知道點了沒有。所以Bubble也要增加一個閃動的action。

代碼的意思是讓間隔50毫秒,重繪一次光照的亮度,亮度值(外圓的半徑)10和30之間來回蕩。這樣就亮了暗,暗了再亮。很有意思:)

  1. Bubble.prototype.play = function () {   
  2.     var me = this;   
  3.     var isUp = true;   
  4.     game.play("light_" + this.x + "_" + this.y, function () {   
  5.         if (isUp) {   
  6.             me.light++;   
  7.         }   
  8.     
  9.         if (!isUp) {   
  10.             me.light--;   
  11.         }   
  12.         if (me.light == 30) {   
  13.             isUp = false;   
  14.         }   
  15.         if (me.light == 10) {   
  16.             isUp = true;   
  17.         }   
  18.     }, 50);   
  19. };   
  20.     
  21. Bubble.prototype.stop = function () {   
  22.     //this.light = 10;   
  23.     var me = this;   
  24.     game.stop("light_" + this.x + "_" + this.y);   
  25.     game.play("restore_" + this.x + "_" + this.y, function () {   
  26.         if (me.light > 10) {   
  27.             me.light--;   
  28.         }   
  29.         else {   
  30.             me.light = 10;   
  31.             game.stop("restore_" + me.x + "_" + me.y);   
  32.         }   
  33.     }, 50);   
  34. }; 

細心的朋友可能會發(fā)現(xiàn),在調(diào)用Game.stop的方法的參數(shù)上增加了一個參數(shù)。 這里我要說明下。如果沒有參數(shù)的情況,game.play和stop會造成問題,因為用的都是一個interval,clear的話會打斷其他的動畫,所以我們把每個action都要傳遞一個name,這樣就能讓game粒度更細的控制每個action了。game的播放代碼也做了響應(yīng)的調(diào)整,如下:

  1. play: function (name, action, interval) {   
  2.     var me = this;   
  3.     this.actions[name] = setInterval(function () {   
  4.         action();   
  5.         me.draw();   
  6.     }, interval || 1);   
  7. },   
  8. stop: function (name) {   
  9.     clearInterval(this.actions[name]);   
  10.     this.draw();   
  11. }, 

效果演示地址:http://jsfiddle.net/maddemon/VtMSU/embedded/result/

原文鏈接:http://www.cnblogs.com/mad/archive/2012/03/18/2403404.html

【編輯推薦】

  1. HTML 5游戲制作之五彩連珠(預覽)
  2. HTML 5游戲制作之五彩連珠(畫圖)
  3. HTML 5游戲制作之五彩連珠(設(shè)計)
  4. HTML 5游戲制作之五彩連珠(尋路)
  5. HTML 5游戲制作之五彩連珠(試玩)

 

責任編輯:張偉 來源: 君之蘭的博客
相關(guān)推薦

2012-05-17 14:45:34

HTML5

2012-05-17 13:45:35

HTML5

2012-05-18 14:05:53

HTML5

2012-05-18 13:07:04

HTML5

2012-05-18 13:59:45

HTML5

2010-08-12 22:35:24

IBM培訓

2011-11-30 15:14:32

HTML 5

2019-09-11 15:20:21

華為

2021-03-26 07:06:40

Windows 10Windows操作系統(tǒng)

2012-06-07 15:29:31

HTML5

2011-07-19 13:07:26

iOS4 HTML5 動畫

2012-05-15 13:57:41

HTML5

2017-08-29 10:55:15

AEbodymovinhtml

2012-01-10 16:37:46

樂團

2012-03-29 09:18:47

HTML5WEB

2012-11-07 09:43:58

IBMdw

2019-09-12 10:10:10

Vim編輯器代碼

2020-04-22 10:01:26

Vim編輯器代碼

2013-08-27 14:20:09

游戲應(yīng)用圖標ASO應(yīng)用商店優(yōu)化

2012-05-30 13:49:52

HTML5
點贊
收藏

51CTO技術(shù)棧公眾號

日本一二三区在线视频| 伊人久久婷婷| 成熟的女同志hd| 5278欧美一区二区三区| 国精产品一区一区三区mba桃花 | 欧美顶级大胆免费视频| 天海翼一区二区| 国产日韩二区| 亚洲一区二区三区在线| 精品国产亚洲一区二区三区大结局| 久久国产精品影院| 97婷婷涩涩精品一区| 激情久久五月天| 欧美激情午夜| 日本超碰在线观看| 日韩专区中文字幕| 麻豆成人免费电影| 77导航福利在线| 成人性视频欧美一区二区三区| 亚洲精品国产欧美| 国产精品尤物| 国产三级在线观看| 天堂av在线网站| 国产亚洲精品久久久优势| 丝袜亚洲另类欧美综合| 国产中文字幕在线看| 中文字幕视频在线免费观看| 亚洲精品美女在线观看| 老司机精品福利视频| 在线观看美女网站大全免费| 午夜剧场在线免费观看| 麻豆成人在线看| 成人一级黄色片| 日本免费一区二区三区四区| 91av手机在线| 国产三区精品| 在线精品国精品国产尤物884a| 国产精品自拍区| 成人午夜视频一区二区播放| 黄色www网站| zzjj国产精品一区二区| 成人免费视频视频| 成人在线黄色| 国产无遮无挡120秒| 亚洲成人一区二区三区| 日韩精品一区二区三区在线观看| 狂野欧美性猛交xxxx巴西| 性欧美ⅴideo另类hd| av电影在线不卡| 九色一区二区| 欧美xingq一区二区| 日韩国产欧美一区二区三区| 538在线视频| 欧美日韩在线国产| 91香蕉视频网址| 亚洲一二三在线| 99久久久久免费精品国产 | 日本高清视频在线观看| 亚洲国产欧美视频| 国产精品永久入口久久久| 日韩欧美中文字幕公布| 精品一区二区免费视频| 国产精品亚洲d| 久久久999久久久| 欧美成人免费高清视频| 奇米4444一区二区三区| 狠狠色噜噜狠狠狠狠97| 亚洲一区成人| 国产精品久久亚洲不卡| 国产免费www| 天天干天天干天天干天天干天天干| 国产91精品青草社区| 午夜精品久久久久影视| 久久综合激情| 91麻豆精品| 亚洲av无码一区二区三区dv| 欧美xxxxx少妇| 欧美精品与人动性物交免费看| 亚洲人成绝费网站色www| 亚洲国产精品精华液ab| 亚洲草久电影| 人狥杂交一区欧美二区| 久久久精品视频网站| 国产精品久久久久久9999| 国产激情一区二区三区在线观看 | 91福利精品在线观看| 国产成人久久精品77777综合| 美女黄色一级视频| 婷婷亚洲婷婷综合色香五月| 欧美成人在线免费视频| 日韩欧美国产激情| 国产在线不卡一卡二卡三卡四卡| 国产精品美女在线观看直播| 成人在线高清视频| 国产性xxxx高清| 欧洲美女亚洲激情| 日韩国产伦理| 欧美一区二区三区免费视| 91精品国产色综合久久不卡电影| 国产91在线|亚洲| 久久免费大视频| 三级成人黄色影院| 人人妻人人澡人人爽精品日本| 国产精品成人在线视频| 欧美性大战久久久久xxx| 亚洲最大福利视频网| 中文字幕不卡av| 欧美色另类天堂2015| 成人av在线看| 国产欧美亚洲一区| 欧美91在线| 成人影院在线播放| 国产 欧美 自拍| 精品少妇久久久| 男男受被啪到高潮自述| 特大黑人娇小亚洲女mp4| 91亚洲永久免费精品| 中文字幕在线国产精品| 欧美少妇性性性| 亚洲欧洲另类国产综合| 精一区二区三区| 狠狠综合久久av一区二区老牛| 欧美特黄不卡| 国产91足控脚交在线观看| 五十路在线观看| xxxx.国产| 美国精品一区二区| xxxxwww一片| 黄网站欧美内射| 婷婷精品国产一区二区三区日韩| 国产精品一区二区久久| 欧美成aaa人片免费看| 欧美tickling网站挠脚心| 日韩欧美在线观看视频| 亚洲图片激情小说| 91视频xxxx| 国内精品久久久久影院薰衣草| 欧美国产高潮xxxx1819| 婷婷激情久久| 欧洲精品99毛片免费高清观看| 成人观看网址| 日本不卡在线| 国产视频福利在线| 神马午夜在线观看| 国产农村老头老太视频| 亚洲不卡视频在线观看| 精品无码黑人又粗又大又长| av网站免费在线看| 香蕉视频免费网站| 手机精品视频在线| 成人性做爰aaa片免费看不忠| 国产va亚洲va在线va| 一级一片免费播放| 日韩高清dvd| 欧美精品一区在线| 欧美精品久久| 国产精品乱子乱xxxx| 444亚洲人体| 91精品天堂| 91在线色戒在线| 5566av亚洲| 亚洲一区二区三区xxx视频| 成人春色激情网| 成人网中文字幕| 91中文字幕在线| 国产传媒一区| 精品蜜桃一区二区三区| 国产在线精品一区二区三区| 国产综合av一区二区三区| 动漫一区二区在线| 久久综合伊人77777麻豆| 久久一区二区三区av| 日本精品视频一区| 中文字幕黄色大片| 精品人妻大屁股白浆无码| 日韩视频免费播放| 精品一卡二卡三卡| 免费网站在线观看黄| 亚洲乱妇老熟女爽到高潮的片| 久久性爱视频网站| 国产探花视频在线播放| 亚洲波多野结衣| 国产成人精品a视频一区| www.伊人久久| 国产日韩免费视频| 免费福利在线观看| av大全在线| 国产一区二区主播在线| 在线观看视频一区二区三区| 国产日产精品_国产精品毛片| 日韩欧美电影| 宅男噜噜噜66国产日韩在线观看| 久久99久久久欧美国产| 99精品1区2区| 亚洲视频一区在线| 欧美在线综合视频| 亚洲精品在线观看网站| 久久精品国亚洲| 国产激情999| 国产日韩欧美一区二区三区四区| 天堂av免费看| 日本特黄a级片| 九九热免费在线| 久久久蜜桃一区二区| 亚洲人成色777777老人头| wwwav在线| 日韩高清一区| 欧美日韩三区| 丁香激情综合国产| 一区二区三区高清| 欧美一区二区三区人| 久久国产精品久久久久久| 成人免费在线视频网站| 亚洲精品一区二区三| 精品久久久久久久免费人妻| av网站免费在线看| 中文字幕有码视频| 日本三级视频在线观看| 久久久久黄色| 欧美激情91| av一本久道久久综合久久鬼色| 亚洲高清免费视频| 亚洲电影免费观看高清| 91大神福利视频在线| 久久免费99精品久久久久久| 国产视频一区二区视频| 久久国产柳州莫菁门| 91丨porny丨在线中文| 国产黄a三级三级三级av在线看| 亚洲国产欧美国产第一区| 日韩五码在线| 欧美激情自拍偷拍| 日韩一区二区电影在线| 欧美一区亚洲一区| 伊人久久大香线蕉精品| 蜜臀一区二区三区精品免费视频 | 欧美久久久久久久久| 久久久久中文字幕| 亚洲欧洲精品一区二区三区波多野1战4| 麻豆传传媒久久久爱| 紧身裙女教师波多野结衣| 风流少妇一区二区三区91| 国产原创一区| 国产日韩欧美高清免费| 一区二区三区在线免费视频| 国产香蕉一区二区三区在线视频 | 久久久久久久极品| 国产淫片在线观看| 成人影院在线| 国产日韩三级在线| 日韩国产在线播放| 成人欧美一区二区三区黑人免费| 久久久久免费精品| 国产成人无码精品亚洲| 中文字幕有码在线视频| 日韩一区自拍| 国产精品久久久久久久久免费丝袜| 亚洲第一网站男人都懂| 91在线在线观看| 99国产精品免费视频| 99产精品成人啪免费网站| jvid一区二区三区| 青青青爽久久午夜综合久久午夜| 欧美色视频日本高清在线观看| 久久黄色av网站| 国产欧美自拍视频| 在线免费日韩av| 在线观看三级视频| 欧美日韩精选| 日韩欧美国产免费播放| 国产精品18久久久久久首页狼| 日本三级免费观看| 黄色大全在线观看| 亚洲一区有码| 成人国产免费视频| 亚洲乱码av中文一区二区| 日本在线成人一区二区| 婷婷丁香综合网| 电影k8一区二区三区久久| 亚洲欧美大片| 欧美大片免费久久精品三p | 国产97色在线| 久久久久国产一区| 亚洲va天堂va欧美ⅴa在线| 婷婷成人综合| 亚洲视频精选在线| 97av在线播放| 91 视频免费观看| 久久免费看视频| 狠狠色狠狠色综合日日tαg| 在线观看不卡一区| 精品久久中出| 免费在线观看h片| 日韩电影毛片| 国产成人精品免费网站| 最近日韩中文字幕中文| 欧美一区二区中文字幕| 国产三级漂亮女教师| 欧美精选一区二区三区| 夜夜嗨av一区二区三区四季av| 国产精品视频久久| 极品人妻一区二区三区| 爱看av在线入口| 丁香激情综合国产| 久久69精品久久久久久久电影好| 凹凸日日摸日日碰夜夜爽1| 天天干,夜夜操| 亚洲小说欧美另类婷婷| 欧美一二三区精品| 精品人伦一区二区三区 | 国产在线不卡一区二区三区| 久久久高清一区二区三区| 久久久久国产视频| 国产精品欧美性爱| 在线观看小视频| 国产河南妇女毛片精品久久久| 久久久999国产| 狠狠干狠狠操视频| 麻豆免费在线观看| 精品一区二区三区在线播放视频| 久久久99久久精品女同性| 天天综合网久久| 日本三级视频在线播放| 久久69国产一区二区蜜臀| 日韩中文在线中文网在线观看| 中文av字幕在线观看| www在线免费观看视频| 成人免费av在线| 91av在线影院| 国产黄色片在线| 中文在线综合| 亚洲aaa精品| 亚洲欧洲久久| 免费激情视频网站| 日韩精品成人一区二区在线| 久久久精品电影| 少妇一级淫免费观看| 日韩免费va| 亚洲综合图片区| 日本一区二区精品视频| 国产精品久久久久久久一区二区 | 欧美大片国产精品| 黄色片视频在线播放| 成人短视频在线观看| 亚洲一二三av| 欧美一级二级视频| 亚洲成人av免费| 人人妻人人澡人人爽精品欧美一区| 亚洲国产精品国自产拍久久| 美女在线视频一区| 91a在线视频| 久久黄色免费网站| 日本一区二区高清不卡| 亚洲欧美日韩国产中文专区| 夜夜爽久久精品91| 日韩欧美一区二区三区在线观看 | 99re这里只有精品首页| 91久久精品日日躁夜夜躁国产| 精品成人无码久久久久久| 亚洲精品看片| 午夜精品久久久久久99热| 小泽玛利亚一区二区免费| 日韩在线视屏| 日韩中文字幕网址| 精品少妇一区二区三区密爱| 菠萝蜜一区二区| 中文字幕不卡在线视频极品| 亚洲精品国产熟女久久久| 日韩三级av| 中文字幕亚洲综合久久筱田步美| 国产毛片久久久久久久| 亚洲人成网站77777在线观看| 日韩国产中文字幕| 精品国产aaa| 四季av一区二区凹凸精品| 久久人人爽人人爽爽久久| 成人涩涩小片视频日本| 亚洲人metart人体| 久久久久久久av| 国产伦精品一区二区三区视频我| 久久精品官网| 成人国产精品av| 你懂的网站在线| 久久精品视频在线免费观看| 亚洲国产欧美一区二区三区不卡| 黄网页免费在线观看| 亚洲高清在线视频| 亚洲美女爱爱视频| 超碰成人福利| 日韩中文娱乐网| 日本天堂网在线观看| 日本不卡一区二区| 99超碰麻豆| 久久99精品久久久久久野外| 亚洲国产sm捆绑调教视频| 波多野结衣xxxx| 国产一区不卡| 91国内在线视频| 国产精品亚洲lv粉色| 久久精品在这里|