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

使用JavaScript和Canvas開(kāi)發(fā)游戲之使用Canvas

開(kāi)發(fā) 前端
這篇文章將帶領(lǐng)大家學(xué)習(xí)使用JavaScript和Canvas元素操作圖像了幾種不同的方式,這些方式在Canvas元素出現(xiàn)之前是不可能的事兒。

3、通過(guò)Canvas元素實(shí)現(xiàn)高級(jí)圖像操作

http://www.brighthub.com/internet/web-development/articles/39509.aspx

這篇文章將帶領(lǐng)大家學(xué)習(xí)使用JavaScript和Canvas元素操作圖像了幾種不同的方式,這些方式在Canvas元素出現(xiàn)之前是不可能的事兒。

上一篇文章演示了如何利用Canvas實(shí)現(xiàn)一個(gè)基本的圖像動(dòng)畫(huà)。那個(gè)例子很簡(jiǎn)單,同樣的效果通過(guò)修改IMG或DIV等標(biāo)準(zhǔn)HTML元素的一些屬性,照樣也可以輕易實(shí)現(xiàn)。下面我們就來(lái)演示一下畫(huà)布元素的高級(jí)應(yīng)用,展示一下它的真正威力。

首先,還是準(zhǔn)備一個(gè)HTML頁(yè)面。

  1.  
  2.  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">  
  3.  <html lang="en">  
  4.     <head>  
  5.        <title>JavaScript Platformer 2</title>  
  6.        <script type="text/javascript" src="jsplatformer2.js"></script>  
  7.        <style type="text/css">  
  8.           body { font-family: Arial,Helvetica,sans-serif;}  
  9.        </style>  
  10.     </head>  
  11.    <body>  
  12.       <p>  
  13.          <a href="http://www.brighthub.com/internet/web-development/articles/38364.aspx">  
  14.             Game Development with Javascript and the canvas element  
  15.          </a>  
  16.       </p>  
  17.       <canvas id="canvas" width="600" height="400">  
  18.          <p>Your browser does not support the canvas element.</p>  
  19.       </canvas>  
  20.       <br />  
  21.       <button onclick="currentFunction=alpha;">Change Alpha</button>  
  22.       <button onclick="currentFunction=shear;">Shear</button>  
  23.       <button onclick="currentFunction=scale;">Scale</button>  
  24.       <button onclick="currentFunction=rotate;">Rotate</button>  
  25.    </body>  
  26. </html> 

與上個(gè)一例子的HTML頁(yè)面相比,唯一的區(qū)別就是添加了一些按鈕。單擊這些按鈕,就會(huì)設(shè)置currentFunction變量(稍后介紹)的值,用以改變?cè)阡秩狙h(huán)中運(yùn)行的函數(shù)。

以下是 jsplatformer2.js 的代碼。

  1.  
  2. // 每秒多少幀  
  3. const FPS = 30;  
  4. const SECONDSBETWEENFRAMES = 1 / FPS;  
  5. const HALFIMAGEDIMENSION = 75;  
  6. const HALFCANVASWIDTH = 300;  
  7. const HALFCANVASHEIGHT = 200;  
  8. var image = new Image();  
  9. image.src = "jsplatformer2-smiley.jpg"//還是第一個(gè)例子中的圖像  
  10. var canvas = null;  
  11. var context2D = null;  
  12. var currentFunction = null;  
  13. var currentTime = 0;  
  14. var sineWave = 0;  
  15.  
  16. window.onload = init;  
  17.  
  18. function init()  
  19. {  
  20.    canvas = document.getElementById('canvas');  
  21.    context2D = canvas.getContext('2d');  
  22.    setInterval(draw, SECONDSBETWEENFRAMES * 1000);  
  23.    currentFunction = scale;  
  24. }  
  25.  
  26. function draw()  
  27. {  
  28.     currentTime += SECONDSBETWEENFRAMES;  
  29.     sineWave = (Math.sin(currentTime) + 1) / 2;  
  30.  
  31.     context2D.clearRect(0, 0, canvas.width, canvas.height);  
  32.  
  33.     context2D.save();  
  34.  
  35.     context2D.translate(HALFCANVASWIDTH - HALFIMAGEDIMENSION, HALFCANVASHEIGHT - HALFIMAGEDIMENSION);  
  36.  
  37.     currentFunction();  
  38.  
  39.     context2D.drawImage(image, 0, 0);  
  40.  
  41.     context2D.restore();  
  42. }  
  43.  
  44. function alpha()  
  45. {  
  46.     context2D.globalAlpha = sineWave;  
  47. }  
  48.  
  49. function shear()  
  50. {  
  51.     context2D.transform(1, 0, (sineWave - 0.5), 1, 0, 0);  
  52. }  
  53.  
  54. function scale()  
  55. {  
  56.     context2D.translate(HALFIMAGEDIMENSION * (1 - sineWave), HALFIMAGEDIMENSION * (1 - sineWave));  
  57.     context2D.scale(sineWave, sineWave);  
  58. }  
  59.  
  60. function rotate()  
  61. {  
  62.     context2D.translate(HALFIMAGEDIMENSION, HALFIMAGEDIMENSION);  
  63.     context2D.rotate(sineWave * Math.PI * 2);  
  64.     context2D.translate(-HALFIMAGEDIMENSION, -HALFIMAGEDIMENSION);  

跟前面一樣,這個(gè)JavaScript文件先定義了一些全局變量。

◆ FPS:每秒多少幀

◆ SECONDSBETWEENFRAMES:兩幀之間間隔的秒數(shù)(FPS的倒數(shù))

◆ HALFIMAGEDIMENSION:要繪制圖像的寬度/高度的一半,用于把圖像定位到畫(huà)布的中心點(diǎn)

◆ HALFCANVASWIDTH:畫(huà)布寬度的一半,用于配合HALFIMAGEDIMENSION使用,以便在畫(huà)布上居中圖像

◆ HALFCANVASHEIGHT:畫(huà)布高度的一半,用于配合HALFIMAGEDIMENSION使用,以便在畫(huà)布上居中圖像

◆ currentFunction:渲染循環(huán)(參見(jiàn)上一篇文章)中運(yùn)行的函數(shù)

◆ currentTime:應(yīng)用已經(jīng)運(yùn)行了多少秒

◆ sineWave:0到1之間的一個(gè)值,用于控制圖像的運(yùn)動(dòng)

◆ image:要在畫(huà)布上繪制的圖像

◆ canvas:畫(huà)布元素的引用

◆ context2D:畫(huà)布元素的2D上下文的引用

然后,跟前面一樣,要設(shè)置在window的onload事件發(fā)生時(shí)立即調(diào)用init函數(shù)(關(guān)于init函數(shù)的介紹,請(qǐng)參見(jiàn)上一篇文章)。

draw函數(shù)

下面來(lái)看一看draw函數(shù):

  1.  
  2. function draw()  
  3. {  
  4.     currentTime += SECONDSBETWEENFRAMES;  
  5.     sineWave = (Math.sin(currentTime) + 1) / 2;  
  6.  
  7.     context2D.clearRect(0, 0, canvas.width, canvas.height);  
  8.  
  9.     context2D.save();  
  10.     context2D.translate(HALFCANVASWIDTH - HALFIMAGEDIMENSION, HALFCANVASHEIGHT - HALFIMAGEDIMENSION);  
  11.     currentFunction();  
  12.     context2D.drawImage(image, 0, 0);  
  13.     context2D.restore();  
  14. }  

這個(gè)例子要演示4種效果:修改alpha值(透明度),以及縮放、旋轉(zhuǎn)和切變圖像。為了展示這些效果,需要基于某一范圍內(nèi)的值來(lái)應(yīng)用變化。變量sineWave就用來(lái)定義這個(gè)范圍值的基準(zhǔn)。

標(biāo)準(zhǔn)的正弦函數(shù)能夠在-1到1之間產(chǎn)生非常完美的波形圖。首先,我們通過(guò)遞增currentTime變量來(lái)反映動(dòng)畫(huà)已經(jīng)運(yùn)行了多長(zhǎng)時(shí)間,然后再利用這個(gè)值在正弦曲線上找到一個(gè)點(diǎn)。給正弦函數(shù)返回的值(從-1到1)先加1再除以2,就可以把它們轉(zhuǎn)換成0到1這個(gè)范圍內(nèi)的值。

  1. currentTime += SECONDSBETWEENFRAMES;  
  2. sineWave = (Math.sin(currentTime) + 1) / 2; 

然后,調(diào)用clearRect方法清空畫(huà)布,以便為后面的繪圖準(zhǔn)備一個(gè)干凈的版面。

  1. context2D.clearRect(0, 0, canvas.width, canvas.height); 

應(yīng)用到畫(huà)布上面的效果是可以累積的,因而就可以利用幾個(gè)簡(jiǎn)單的函數(shù)來(lái)“組合”出效果來(lái)。例如,在向屏幕上繪制之前,可能會(huì)有一艘飛船需要旋轉(zhuǎn)、變換和縮放。因?yàn)樗行Ч紝?duì)畫(huà)布起作用,所以這些效果會(huì)應(yīng)用到將被繪制在屏幕上的所有對(duì)象,而不僅僅是某一幅圖像或某一個(gè)形狀(比如一艘飛船)。

其中,save和restore函數(shù)為應(yīng)用這些累積的效果提供了一種簡(jiǎn)單的機(jī)制,可以將應(yīng)用了這些效果的圖像或圖形繪制到畫(huà)布上,然后“撤銷”這些改變。后臺(tái)的操作是什么呢?save函數(shù)把當(dāng)前的繪制狀態(tài)推進(jìn)棧里,而restore函數(shù)則把最后一個(gè)狀態(tài)彈出棧。還拿前面提到的飛船為例,需要執(zhí)行下列操作:

◆ 調(diào)用save函數(shù)(保存當(dāng)前的繪制狀態(tài))

◆ 旋轉(zhuǎn)、變換和縮放上下文

◆ 繪制飛船

調(diào)用restore函數(shù),移除自上一次調(diào)用save方法以來(lái)所添加的任何效果,也就是撤銷之前的變化

在這里,我們就是要組合起來(lái)使用這兩個(gè)方法。首先,在把任何效果應(yīng)用到畫(huà)布之前,先保存繪制狀態(tài)。

  1. context2D.save(); 

保存了繪制狀態(tài)之后,就該應(yīng)用目標(biāo)效果了。為此,首先調(diào)用translate函數(shù),從而將隨后要繪制的圖像在畫(huà)布上居中。

  1. context2D.translate(HALFCANVASWIDTH - HALFIMAGEDIMENSION, HALFCANVASHEIGHT - HALFIMAGEDIMENSION); 

接下來(lái),調(diào)用由變量currentFunction引用的函數(shù)。正是這些被引用的函數(shù),是讓圖像發(fā)生alpha(透明度)變化以及縮放、旋轉(zhuǎn)和切變的關(guān)鍵。這些函數(shù)我們稍后再介紹。

  1. currentFunction(); 

為圖像應(yīng)用完效果之后,就可以把它繪制到畫(huà)布上面了。所以,接下來(lái)就是調(diào)用drawImage來(lái)繪圖。

  1. context2D.drawImage(image, 0, 0);  

最后,再調(diào)用restore函數(shù),把自調(diào)用save函數(shù)以來(lái)應(yīng)用的所有效果從畫(huà)布上移除。

  1. context2D.restore(); 

alpha函數(shù)

  1. function alpha()  
  2. {  
  3.     context2D.globalAlpha = sineWave;  

通過(guò)修改上下文對(duì)象的globalAlpha屬性,所有后續(xù)繪制操作的透明度都會(huì)被修改。將globalAlpha設(shè)置為0,意味著被繪制的任何對(duì)象都將完全透明,而將這個(gè)屬性設(shè)置為1,則意味著任何繪制操作都會(huì)保持原有的透明度級(jí)別。在此,我們通過(guò)修改這個(gè)globalAlpha屬性,可以實(shí)現(xiàn)笑臉的淡入和淡出效果。

shear函數(shù)

  1. function shear()  
  2. {  
  3.     context2D.transform(1, 0, (sineWave - 0.5), 1, 0, 0);  
  4. }  

切變操作是通過(guò)transform函數(shù)向畫(huà)布應(yīng)用一個(gè)矩陣來(lái)實(shí)現(xiàn)的。變換矩陣本身就是一個(gè)值得研究的主題,但對(duì)我們來(lái)說(shuō),如果不想理解背后的數(shù)學(xué)原理,可以在網(wǎng)上找到很多標(biāo)準(zhǔn)的2D變換矩陣(http://en.wikipedia.org/wiki/Transformation_matrix#Examples_in_2D_graphics),直接使用transform函數(shù)來(lái)應(yīng)用它們即可。所謂切變,其實(shí)就是把圖像的頂部或底部推到一邊。

scale函數(shù)

  1. function scale()  
  2.  {  
  3.      context2D.translate(HALFIMAGEDIMENSION * (1 - sineWave), HALFIMAGEDIMENSION * (1 - sineWave));  
  4. 56  
  5.     context2D.scale(sineWave, sineWave);  
  6.  }  

顧名思義,scale(縮放)函數(shù)修改的是圖像的大小。但在此之前,我們還調(diào)用了一次transalte函數(shù)。這是為了讓縮放后的圖像在畫(huà)布上居中。如果你把這行代碼注釋掉,就會(huì)發(fā)現(xiàn)圖像會(huì)從左上角向右下角膨脹。調(diào)用translate函數(shù)就是為抵消其圓心的位移,讓圖像始終居中。

rotate函數(shù)

  1. function rotate()  
  2. {  
  3.     context2D.translate(HALFIMAGEDIMENSION, HALFIMAGEDIMENSION);  
  4.     context2D.rotate(sineWave * Math.PI * 2);  
  5.     context2D.translate(-HALFIMAGEDIMENSION, -HALFIMAGEDIMENSION);  
  6. }  

與scale函數(shù)類似,rotate(旋轉(zhuǎn))函數(shù)的作用也正如其名:旋轉(zhuǎn)圖像。與scale函數(shù)同樣類似的是,這里也額外調(diào)用了translate函數(shù)以確保圖像圍繞中心點(diǎn)而不是左上角旋轉(zhuǎn)。建議大家把對(duì)translate函數(shù)的調(diào)用注釋掉,自己看一看結(jié)果有什么不同。

剛剛我們看到了使用畫(huà)布元素實(shí)現(xiàn)的4種也還算簡(jiǎn)單的效果,這些效果使用標(biāo)準(zhǔn)的HTML元素幾乎是不可能做到的。其中,有的效果可以使用scale和rotate等內(nèi)置函數(shù)來(lái)實(shí)現(xiàn),而使用transform函數(shù)則可以完成大量的圖像操作(切變只是其中之一)。

看看Demo吧。http://webdemos.sourceforge.net/jsplatformer2/jsplatformer2.html

原文作者:Matthew Casperson 原文鏈接: Game Development with JavaScript and the Canvas element

譯文作者:李松峰 譯文鏈接:http://www.cn-cuckoo.com/2011/08/10/game-development-with-javascript-and-the-canvas-element-2554.html

【編輯推薦】

  1. 使用JavaScript和Canvas開(kāi)發(fā)游戲之認(rèn)識(shí)Canvas
  2. JavaScript入門(mén)之語(yǔ)言基礎(chǔ)
  3. JavaScript入門(mén)之事件、cookie、定時(shí)等
  4. 給用HTML 5開(kāi)發(fā)移動(dòng)應(yīng)用的5個(gè)警告
  5. 云端JavaScript漫游指南(視頻)
責(zé)任編輯:陳貽新 來(lái)源: 李松峰的博客
相關(guān)推薦

2011-08-11 09:16:50

JavaScript

2012-01-04 13:55:23

Canvas

2012-05-09 09:41:58

HTML5

2013-05-20 17:13:17

Android游戲開(kāi)發(fā)CanvasPaint

2022-03-09 09:00:41

SwiftUI視圖生成器Swift

2012-02-24 15:28:36

ibmdw

2021-01-06 10:05:09

鴻蒙HarmonyOSCanvas

2022-05-27 11:22:40

Canvas超級(jí)瑪麗游戲

2010-09-30 13:11:59

J2MECanvas

2021-01-04 11:10:14

鴻蒙HarmonyOSCanvas

2022-02-23 15:17:04

鴻蒙OpenHarmonJacascript

2012-05-09 12:18:14

HTML5Canvas

2012-06-04 10:16:18

HTML5

2009-12-29 10:06:09

WPF Canvas

2022-06-29 14:06:54

canvas鴻蒙

2021-09-01 22:59:31

Canvas標(biāo)簽語(yǔ)法

2023-02-28 11:43:35

2011-05-16 17:19:29

游戲開(kāi)發(fā)iPhone

2014-08-04 17:46:15

NavBarTarBar

2012-09-24 13:49:13

HTML5CanvasJS
點(diǎn)贊
收藏

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

日韩中文字幕亚洲一区二区va在线 | 精品久久国产| 在线欧美小视频| 亚洲日本精品一区| 99在线精品视频免费观看软件| 久久久久美女| 色欲狠狠躁天天躁无码中文字幕| 97国产成人无码精品久久久| 日韩影院二区| 日韩一区二区麻豆国产| 东北少妇不带套对白| 青青草在线免费视频| 日韩成人av影视| 欧美成人精品一区二区三区| 色综合888| 色综合综合网| 91精品国产色综合久久ai换脸| 日韩伦理在线免费观看| 国产鲁鲁视频在线观看免费| 久久电影国产免费久久电影| 欧美激情国产日韩精品一区18| 添女人荫蒂视频| 日韩色性视频| 午夜精品久久久久| 在线国产伦理一区| 亚洲AV成人无码一二三区在线| 日本成人超碰在线观看| 久久久久久久久久久久久久久久久久av | 欧美三级理伦电影| 成人激情动漫在线观看| 国产精品美女久久久久av超清| 永久免费看黄网站| 国内亚洲精品| 亚洲第一级黄色片| 亚洲精品免费一区亚洲精品免费精品一区| 高清在线视频不卡| 一区精品在线播放| 亚洲另类激情图| 不用播放器的免费av| 成人影院在线视频| 亚洲日本在线a| 日本一区二区在线视频观看| 好吊视频一区二区三区| 久久精品国产精品亚洲综合| 青青久久av北条麻妃海外网| 久久久久久欧美精品se一二三四| 日韩精品永久网址| 亚洲人成电影在线观看天堂色| 95视频在线观看| 久久久久九九精品影院| 欧美美女一区二区在线观看| 国产xxxxx在线观看| 国产第一页在线| 亚洲色图20p| 伊人久久99| 91成人高清| 日本一区二区三区高清不卡| 蜜桃视频在线观看成人| 日韩中文字幕免费观看| 国产成人精品网址| 99在线观看| www.超碰在线.com| 国产精品中文字幕欧美| 91精品免费视频| 亚洲一区二区三区高清视频| 久久99最新地址| 国产精品专区一| 中文字幕第三页| 日韩激情av在线| 国产精品久久久av久久久| 免费看日批视频| 午夜一级在线看亚洲| 91精品国产高清久久久久久91 | 亚洲一二三级电影| 久久综合久久网| 成人影音在线| 欧美日韩中文字幕| 欧美在线观看成人| 国产精品迅雷| 欧美主播一区二区三区| 亚洲欧美自偷自拍另类| 四虎精品永久免费| 欧美一区二区福利在线| 影音先锋资源av| 国产精品主播在线观看| 日韩精品极品视频| 天天干天天操天天拍| 久久久影院免费| 欧美乱人伦中文字幕在线| 亚洲女同二女同志奶水| 欧美不卡在线| 午夜精品一区二区三区视频免费看| 国产精品18p| 日韩综合一区二区| 成人做爽爽免费视频| 丁香六月天婷婷| 91麻豆国产精品久久| 色999日韩自偷自拍美女| 巨大荫蒂视频欧美大片| 午夜精品一区二区三区免费视频| 女人和拘做爰正片视频| 日韩成人精品一区二区三区| 欧美一区二区播放| 国产三级国产精品| 久久婷婷蜜乳一本欲蜜臀| 欧美另类高清videos| 日韩欧美在线观看免费| 国产剧情在线观看一区二区| 国产精品久久精品视| 天堂在线资源8| 国产女人18水真多18精品一级做| 天天综合色天天综合色hd| 青草av在线| 在线观看日韩毛片| 最新国产精品自拍| av中文一区| 91chinesevideo永久地址| 国产一区二区自拍视频| 91免费看`日韩一区二区| 正在播放精油久久| 欧美极品少妇videossex| 欧美午夜女人视频在线| 亚洲黄色片免费看| 亚洲区小说区| 欧美成人亚洲成人| 波多野结衣视频在线观看| 高清不卡在线观看| 在线一区亚洲| 亚洲综合在线电影| 亚洲第一男人天堂| 国产大学生自拍| 麻豆精品国产传媒mv男同| 国产视频不卡| 亚洲小说区图片| 9191国产精品| 久久精品色妇熟妇丰满人妻| 国产日韩1区| 成人在线免费网站| 国产在线看片| 欧美日韩一级大片网址| 丰满少妇高潮一区二区| 在线欧美三区| 成人免费在线一区二区三区| 欧美成年黄网站色视频| 日韩人在线观看| 成人免费无码大片a毛片| 亚洲欧美色图| 91精品久久久久久久久久久久久| 国产在线视频网址| 欧美日韩国产精品| 国产人成视频在线观看| 欧美日韩一卡| 亚洲自拍偷拍区| 麻豆网在线观看| 欧美日韩免费一区二区三区| 亚洲黄色免费视频| 三级在线观看一区二区| 日本成人黄色| 日本在线中文字幕一区二区三区| 亚洲免费视频网站| 亚洲第一网站在线观看| 久久精品人人做人人综合| 999香蕉视频| 国产成人高清| 国产精品久久久久7777婷婷| 91亚洲欧美| 欧美日本视频在线| 欧美一级特黄高清视频| 九色porny丨国产精品| dy888午夜| 亚洲精品一区二区三区在线| 欧美华人在线视频| 亚洲成人黄色片| 亚洲成人免费影院| 天堂久久久久久| 免费精品视频| 欧美精品国产精品久久久| av免费不卡国产观看| 日韩激情第一页| 国产99久久久久久免费看| 国产欧美精品国产国产专区| 九九九在线观看视频| 欧美日韩一二三四| 国产欧美中文字幕| 毛片在线网址| 国产婷婷97碰碰久久人人蜜臀| 国产午夜精品久久久久| 日本一区二区三区四区| 想看黄色一级片| 欧美日韩亚洲一区三区| 蜜桃成人在线| 日本一区二区三区中文字幕| 久久久久久久久久久av| 美国成人毛片| 91精品国产色综合久久ai换脸| 精品无码人妻一区二区三区品| 97精品国产97久久久久久久久久久久 | 中文字幕在线视频一区二区| 99视频一区| 亚洲日本理论电影| 成人在线超碰| 国产精品成人播放| 在线观看av免费| 亚洲欧洲激情在线| 99久久国产免费| 欧美日韩亚洲91| 国产精品99久久久久久成人| 99久久综合国产精品| 亚洲性图一区二区| 最新成人av网站| 少妇精品久久久久久久久久| 在这里有精品| 国产精品日韩久久久久| 菠萝蜜视频在线观看www入口| 一本色道久久88综合亚洲精品ⅰ | 国精产品一区二区| 日韩精品一级毛片在线播放| 91av国产在线| 菠萝蜜视频国产在线播放| 亚洲精品中文字幕有码专区| 99久久精品国产成人一区二区| 色婷婷av一区二区三区大白胸 | 少妇性l交大片7724com| 日韩高清在线电影| 欧美大片在线播放| 欧美二区不卡| 在线码字幕一区| 国产一区二区精品福利地址| 国产精品久久久久久久免费大片| 青草综合视频| 国产精品精品久久久| 不卡专区在线| 欧美成人激情视频| 爱久久·www| 精品中文字幕久久久久久| 精品国产亚洲AV| 欧美欧美欧美欧美首页| 伊人久久久久久久久久久久| 舔着乳尖日韩一区| 劲爆欧美第一页| 亚洲日本在线视频观看| 亚洲精品一区二区三区在线播放| 久久久99精品免费观看| aa一级黄色片| 99精品桃花视频在线观看| 精品久久久99| 免费在线看一区| 狠狠97人人婷婷五月| 99热免费精品在线观看| 日韩av中文字幕第一页| 亚洲自拍偷拍网| 在线成人av电影| 久久国产综合| 亚洲一区二区三区免费看| 日韩一区三区| 一本一道久久久a久久久精品91 | gogogo免费高清日本写真| 93在线视频精品免费观看| 亚洲综合网中心| 无需播放器亚洲| 日韩人妻精品一区二区三区| 一区二区免费不卡在线| 欧美少妇一区二区三区| 综合国产在线| 国产精品无码电影在线观看| 亚洲天堂偷拍| 91好吊色国产欧美日韩在线| 国产亚洲网站| 激情网站五月天| 久久精品国内一区二区三区| 日本中文字幕二区| 国产精品99久久久久久久女警| 中文字幕 欧美 日韩| 久久99精品一区二区三区三区| 国产精品久久a| 久久99蜜桃精品| www.色就是色.com| www.亚洲色图.com| 国产精品jizz| 中文字幕一区二区三区不卡| 农村妇女精品一区二区| 亚洲综合清纯丝袜自拍| 男人的天堂一区| 在线观看日韩av先锋影音电影院| 一级日韩一级欧美| 日韩精品自拍偷拍| 日本v片在线免费观看| 在线午夜精品自拍| 欧美videos另类精品| 欧美中文字幕视频| 日韩久久一区二区三区| 亚洲iv一区二区三区| 欧美黑人巨大videos精品| 日韩成人av网站| 欧美不卡在线| 青青草原av在线播放| 青青青爽久久午夜综合久久午夜 | 高清久久精品| 精品国产综合区久久久久久| 爽爽窝窝午夜精品一区二区| 亚洲女人毛片| 亚洲一区自拍| 中文 日韩 欧美| 久久尤物电影视频在线观看| 顶级黑人搡bbw搡bbbb搡| 精品国产31久久久久久| 国产一区二区女内射| 日韩大片免费观看视频播放| 免费在线观看av| 欧美一区二区.| 国产情侣一区在线| 欧美日本韩国国产| 欧美三级不卡| xx欧美撒尿嘘撒尿xx| 91啪亚洲精品| 免费人成在线观看| 午夜日韩在线观看| 国产草草影院ccyycom| 亚洲欧洲av一区二区| 日本性爱视频在线观看| 国产精品视频999| 91蝌蚪精品视频| 一区二区三区观看| 噜噜噜久久亚洲精品国产品小说| 亚洲熟女乱综合一区二区| 欧美国产日本韩| 国产www在线| 欧美成人高清电影在线| 97caopor国产在线视频| 国产精品视频资源| 九色精品国产蝌蚪| 黄页免费在线观看视频| 国产精品系列在线播放| 成人一级黄色大片| 欧美中文一区二区三区| 青青青手机在线视频观看| 久久免费高清视频| 欧美电影在线观看一区| 亚洲三区四区| 免费成人在线观看视频| 少妇人妻好深好紧精品无码| 丁香五六月婷婷久久激情| 免费国产黄色片| 久久久久久18| 国产精品1luya在线播放| 伊人再见免费在线观看高清版 | 日韩理论片一区二区| 亚洲成人av网址| 亚洲一区二区久久| 高清电影一区| 偷拍视频一区二区| 日韩av电影一区| 在线国产视频一区| 色悠悠久久综合| 久久国产精品高清一区二区三区| 欧美亚洲国产视频| 综合亚洲自拍| 亚洲狼人综合干| 国产精品久线在线观看| 中国黄色一级视频| 最好看的2019的中文字幕视频| 高清亚洲高清| 伊人久久青草| 麻豆成人免费电影| 私库av在线播放| 精品动漫一区二区三区在线观看| 国产91足控脚交在线观看| 国产免费高清一区| 在线亚洲观看| 国产成人一区二区在线观看| 欧美男人的天堂一二区| gogo在线观看| 国产日韩欧美综合精品| 免费精品视频| 韩国一级黄色录像| 黄色欧美网站| 97视频在线免费观看| 欧美爱爱网站| 国产精品宾馆在线精品酒店| 久久天天做天天爱综合色| 波多野结衣电影在线播放| www.欧美免费| 日韩一级淫片| 国产97在线 | 亚洲| 久久久精品欧美丰满| 高潮无码精品色欲av午夜福利| 色爱精品视频一区| 一区二区三区四区高清视频| 青少年xxxxx性开放hg| 国产福利一区在线| 日本最新中文字幕| 亚洲美女精品成人在线视频| 成人国产激情| 小泽玛利亚av在线| 成人av电影在线网| 国产99免费视频| 欧美大胆a视频| 要久久电视剧全集免费| 中文字幕亚洲影院| 久久五月天小说|