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

用原生 JS 寫(xiě)一個(gè)簡(jiǎn)易版的臺(tái)球

開(kāi)發(fā) 前端
requestAnimationFrame就是一個(gè)JS動(dòng)畫(huà)幀,簡(jiǎn)單來(lái)說(shuō)和定時(shí)器有點(diǎn)相似,但是動(dòng)畫(huà)呈現(xiàn)出來(lái)的效果比定時(shí)器更流暢,性能更好。

前言

突發(fā)奇想想用JS寫(xiě)一個(gè)臺(tái)球小游戲,磕磕碰碰之后,算是實(shí)現(xiàn)了一個(gè)簡(jiǎn)易版的。用到的知識(shí)主要是通過(guò)遞歸來(lái)調(diào)用requestAnimationFrame,以及一些簡(jiǎn)單的三角函數(shù)角度計(jì)算。requestAnimationFrame就是一個(gè)JS動(dòng)畫(huà)幀,簡(jiǎn)單來(lái)說(shuō)和定時(shí)器有點(diǎn)相似,但是動(dòng)畫(huà)呈現(xiàn)出來(lái)的效果比定時(shí)器更流暢,性能更好。

1、繪制游戲元素

CSS

// CSS
.table {
position: relative;
margin: 100px auto;
width: 1080px;
height: 596px;
background: url(./臺(tái)球桌.jpg) no-repeat;
background-size: 100%;
}

.big {
position: absolute;
width: 1000px;
height: 500px;
left: 43px;
top: 48px;
}

.box,
.box2 {
width: 50px;
height: 50px;
border-radius: 50%;
box-shadow: inset 0 0 10px rgba(255, 255, 255, 0.5);
position: absolute;
}

.box {
background: radial-gradient(circle at 75% 30%, #fff 5px, #fffbfef1 8%, #aaaaaac4 60%, #faf6f9bd 100%);
}

.box2 {
background: radial-gradient(circle at 75% 30%, #fff 5px, #ff21f4f1 8%, #d61d1dc4 60%, #ff219b 100%);
}

.big .box::before,
.box2::before {
content: '';
position: absolute;
width: 100%;
height: 100%;
transform: scale(0.25) translate(-70%, -70%);
background: radial-gradient(#fff, transparent);
border-radius: 50%;
}

.gan {
display: flex;
height: 20px;
position: absolute;
left: 25px;
top: 15px;
transform-origin: 0 50%;
transform: rotate(50deg);
cursor: pointer;
}

.gan2 {
width: 25px;
height: 20px;
}

.gan3 {
width: 375px;
height: 20px;
background: url(./Snipaste_2022-07-18_19-52-54.jpg) no-repeat center;
background-size: 100%;
}

html

//html
<div class="table">
<div class="big">
<div class="box">
<div class="gan">
<div class="gan2"></div>
<div class="gan3"></div>
</div>
</div>
<div class="box2"></div>
</div>
</div>

JS

//JS
// 設(shè)置球的位置
//母球
const box1 = document.querySelector('.box')
box1.style.left = '300px'
box1.style.top = '150px'
//子球
const box2 = document.querySelector('.box2')
box2.style.left = '700px'
box2.style.top = '300px'
//球桿
const gan = document.querySelector('.gan')
const gan2 = document.querySelector('.gan2')
const gan3 = document.querySelector('.gan3')

2、球桿跟隨鼠標(biāo)旋轉(zhuǎn)

先獲取鼠標(biāo)在頁(yè)面的坐標(biāo),然后減去球心的坐標(biāo),就得到了一個(gè)相對(duì)坐標(biāo)。然后把球心當(dāng)成原點(diǎn),計(jì)算出鼠標(biāo)相對(duì)球心的角度,最后把這個(gè)角度賦值給球桿的transform屬性,就可以實(shí)現(xiàn)球桿跟隨鼠標(biāo)旋轉(zhuǎn)的效果了

//聲明鼠標(biāo)相對(duì)坐標(biāo)變量
let x, y
// 獲取鼠標(biāo)的坐標(biāo),來(lái)計(jì)算球桿的角度
document.addEventListener('mousemove', function (e) {
const position = box1.getBoundingClientRect()
// 獲取鼠標(biāo)相對(duì)球心的坐標(biāo),因?yàn)楹凶拥?span style="color: #005cc5;">position原點(diǎn)在左上角,所以要減去自身寬高的一半才是球心
x = e.pageX - position.left - 25
y = e.pageY - position.top - 25 - document.documentElement.scrollTop
let z = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2)); // 勾股定理計(jì)算斜邊值
let cos = y / z;// 余弦
let radian = Math.acos(cos);//用反三角函數(shù)求弧度
let angle = 180 / (Math.PI / radian);//將弧度轉(zhuǎn)換成角度
if (x > 0 && y > 0) {//鼠標(biāo)在第四象限
angle = 90 - angle
}
if (x == 0 && y > 0) {//鼠標(biāo)在y軸負(fù)方向上
angle = 90;
}
if (x == 0 && y < 0) {//鼠標(biāo)在y軸正方向上
angle = 270;
}
if (x > 0 && y == 0) {//鼠標(biāo)在x軸正方向上
angle = 0;
}
if (x < 0 && y > 0) {//鼠標(biāo)在第三象限
angle = 90 + angle
}
if (x < 0 && y == 0) {//鼠標(biāo)在x軸負(fù)方向
angle = 180;
}
if (x < 0 && y < 0) {//鼠標(biāo)在第二象限
angle = 90 + angle
}
if (x > 0 && y < 0) {//鼠標(biāo)在第一象限
angle = 450 - angle
}
// 把計(jì)算出來(lái)的角度取模后賦值給球桿旋轉(zhuǎn)角度
gan.style.transform = `rotate(${angle % 360}deg)`
})

3、球桿的擊球動(dòng)畫(huà)

球桿其實(shí)是由 3 個(gè)盒子組成的,最外面的大盒子來(lái)控制球桿的旋轉(zhuǎn),大盒子里面有兩個(gè)盒子 gan2 和 gan3, gan3 這個(gè)盒子用來(lái)放球桿的圖片。gan2 這個(gè)盒子是看不到的,它負(fù)責(zé)把球桿向外面撐開(kāi)。所以球桿的動(dòng)畫(huà)就很簡(jiǎn)單了,只要增加和減少 gan2 盒子的寬,就能實(shí)現(xiàn)球桿的伸縮了。

實(shí)現(xiàn)動(dòng)畫(huà)就是用尾遞歸來(lái)重復(fù)調(diào)用 requestAnimationFrame 函數(shù)。

// // 球桿點(diǎn)擊事件
document.querySelector('.gan3').addEventListener('click', function () {
moveGan(gan2, 0)
})
// 球桿打擊動(dòng)畫(huà)
function moveGan(item, num) {
// i來(lái)控制函數(shù)的結(jié)束條件
let i = num
requestAnimationFrame(() {
//獲取元素的坐標(biāo)值,要把字符串里的數(shù)字提取出來(lái)
let moveX = parseFloat(item.style.width) || 25
moveX += 15
// 每一次調(diào)用這個(gè)函數(shù),就讓元素的寬+15px
item.style.width = moveX + 'px'
i++
if (i >= 10) {
// i>10時(shí),就讓球桿再縮回去
return returnGan(item, 0)
}
// 使用尾遞歸來(lái)重復(fù)調(diào)用
return moveGan(item, i)
})
}
function returnGan(item, num) {
let i = num
requestAnimationFrame(() {
let moveX = parseFloat(item.style.width) || 0
moveX -= 15
// 每一次調(diào)用這個(gè)函數(shù),就讓元素的寬-15px
item.style.width = moveX + 'px'
i++
if (i >= 10) {
return tick() //tick是擊球的函數(shù)
}
return returnGan(item, i)
})
}

4、球桿擊球后,母球的移動(dòng)

母球的擊球動(dòng)畫(huà)同樣是通過(guò)尾遞歸來(lái)重復(fù)調(diào)用 requestAnimationFrame 函數(shù),但是涉及到墻壁反彈,以及撞擊子秋,母球的移動(dòng)函數(shù)的參數(shù)會(huì)復(fù)雜一點(diǎn)。

母球移動(dòng)的速度和距離,是通過(guò)i這個(gè)變量來(lái)控制的,這個(gè)函數(shù)每調(diào)用一次,i 會(huì)遞減。x 和 y 這兩個(gè)參數(shù)會(huì)接收一個(gè) -1 到 1 之間的值,起到一個(gè)方向系數(shù)的效果,通過(guò)參數(shù)把球桿的撞擊方向傳遞進(jìn)來(lái)。碰到邊界之后,就把對(duì)應(yīng)的系數(shù)取負(fù),然后用新系數(shù)執(zhí)行移動(dòng)函數(shù),就能起到反彈的效果了。

// 擊打母球的函數(shù)
function tick() {
// 通過(guò)絕對(duì)值判斷打擊角度,xy就是鼠標(biāo)相對(duì)球心的坐標(biāo)
if (Math.abs(x) > Math.abs(y)) {
// 通過(guò)判斷x,y是否大于0,判斷打擊方向
if (x > 0 && y > 0 || x > 0 && y < 0) {
raf(box1, -1, -1 / (x / y), 1000)
} else {
raf(box1, 1, 1 / (x / y), 1000)
}
} else {
if (y > 0 && x > 0 || y > 0 && x < 0) {
raf(box1, -1 / (y / x), -1, 1000)
} else {
raf(box1, 1 / (y / x), 1, 1000)
}
}
}

//..... 母球移動(dòng)的函數(shù)里面還要加代碼,所以這里就先不貼出來(lái)了。

// 判斷是否進(jìn)洞的函數(shù)
function test(x, y) {
if (x < 10 && y < 10 || x > 940 && y < 10 || x > 940 && y > 440 || x < 10 && y > 440
|| x > 475 && x < 525 && y < 5 || x > 475 && x < 525 && y > 445) {
return true
}
}

5、母球撞擊子球移動(dòng)

這是最麻煩的一步,撞擊后兩個(gè)球的運(yùn)動(dòng)軌跡都會(huì)發(fā)生變化。只考慮最普通的撞擊,子球的運(yùn)動(dòng)方向應(yīng)該是撞擊點(diǎn)與子球球心這條直線(xiàn)的方向,這個(gè)比較好計(jì)算。母球的撞擊后的方向應(yīng)該是以撞擊點(diǎn)的那條切線(xiàn)進(jìn)行反彈,三角函數(shù)幾乎忘光了,這個(gè)我也不知道怎么計(jì)算了,所以用了個(gè)簡(jiǎn)易的算法,就和撞墻壁一樣直接反彈,這樣會(huì)導(dǎo)致某些角度下,母球撞擊之后的方向不正常。

把這個(gè)撞擊判斷加到母球移動(dòng)的函數(shù)里面,然后再補(bǔ)充一個(gè)子球的移動(dòng)函數(shù),整個(gè)代碼就寫(xiě)完了

//母球移動(dòng)
// 獲取坐標(biāo),要把字符串里的數(shù)字提取出來(lái)
let fx = parseFloat(box1.style.left)
let fy = parseFloat(box1.style.top)
let gx = parseFloat(box2.style.left)
let gy = parseFloat(box2.style.top)
// 聲明用判斷撞球角度的變量
let n
// 控制子球移動(dòng)函數(shù)的調(diào)用
let p = true
function raf(item, x, y, num) {
//擊球后隱藏球桿
gan3.style.display = 'none'
// item是目標(biāo)元素,xy對(duì)應(yīng)移動(dòng)方向的系數(shù),i用來(lái)控制移動(dòng)速度
let i = num
requestAnimationFrame(() {
fx += x * 5 * i / 500
fy += y * 5 * i / 500
item.style.left = fx + 'px'
item.style.top = fy + 'px'
i -= 2
// 邊界判斷,球桌寬1000500,球?qū)捀?span style="color: #005cc5;">50,所以邊界就是0-950
if (fx > 950) { // 右邊界,讓x系數(shù)反過(guò)來(lái)
fx = 950
return raf(item, -x, y, i)
} else if (fy > 450) { // 下邊界,讓y系數(shù)反過(guò)來(lái)
fy = 450
return raf(item, x, -y, i)
} else if (fx < 0) { // 左邊界,讓x系數(shù)反過(guò)來(lái)
fx = 0
return raf(item, -x, y, i)
} else if (fy < 0) { // 上邊界,讓y系數(shù)反過(guò)來(lái)
fy = 0
return raf(item, x, -y, i)
}
// i<=50就停止移動(dòng),然后顯示球桿
if (i <= 50) return gan3.style.display = 'block'
// 判斷球是否進(jìn)洞
if (test(fx, fy)) {
return item.style.display = 'none'
}
//兩個(gè)球撞擊時(shí)的判斷
if (fx < gx + 50 && fx > gx - 50 && fy < gy + 50 && fy > gy - 50) {
// 子球前進(jìn)的角度,就是撞擊時(shí),兩個(gè)圓心連線(xiàn)的夾角
n = Math.abs(gx - fx) >= Math.abs(gy - fy) ? Math.abs(gx - fx) : Math.abs(gy - fy)
// n用來(lái)控制調(diào)用函數(shù)時(shí)x,y的大小,不能大于1,否則移動(dòng)速度會(huì)異常
if (p) raf2(box2, (gx - fx) / n, (gy - fy) / n, i)
// 只有第一次碰撞時(shí),會(huì)調(diào)用一次子球移動(dòng)的函數(shù),避免一次擊球產(chǎn)生多次撞擊時(shí),這個(gè)函數(shù)被多次調(diào)用
p = false
return raf(item, -x, y, i)
}
return raf(item, x, y, i)
})
}
//子球移動(dòng)
function raf2(item, x, y, num) {
let i = num
requestAnimationFrame(() {
//獲取元素的坐標(biāo)值,要把字符串里的數(shù)字提取出來(lái)
gx += x * 5 * i / 700
gy += y * 5 * i / 700
item.style.left = gx + 'px'
item.style.top = gy + 'px'
i -= 2
if (gx > 950) {
gx = 950
return raf2(item, -x, y, i)
} else if (gy > 450) {
gy = 450
return raf2(item, x, -y, i)
} else if (gx < 0) {
gx = 0
return raf2(item, -x, y, i)
} else if (gy < 0) {
gy = 0
return raf2(item, x, -y, i)
}
//兩個(gè)球觸碰判斷
if (fx < gx + 50 && fx > gx - 50 && fy < gy + 50 && fy > gy - 50) {
return raf2(box2, (gx - fx) / n, (gy - fy) / n, i)
}
if (i <= 50) return p = true // 移動(dòng)函數(shù)執(zhí)行完后,重置p這個(gè)變量
// 判斷球是否進(jìn)洞
if (test(gx, gy)) {
return item.style.display = 'none'
}
return raf2(item, x, y, i)
})
}

圖片

總結(jié)

圖片

這個(gè)小游戲?qū)崿F(xiàn)的并不完美,因?yàn)橛玫搅颂嗟倪f歸,很多細(xì)節(jié)方面不好控制,球的運(yùn)動(dòng)軌跡也很難計(jì)算,在某些角度下會(huì)出現(xiàn)BUG。球雖然是圓的,但是它的盒子是正方形,所以撞擊有的時(shí)候會(huì)看著很奇怪。移動(dòng)的函數(shù)寫(xiě)的也有缺陷,它不能復(fù)用,如果想添加多個(gè)球,函數(shù)就得改。

這個(gè)破產(chǎn)版的臺(tái)球主要就是寫(xiě)著玩一玩,嘗試了一下JS動(dòng)畫(huà)的實(shí)現(xiàn) , 不喜勿噴。

責(zé)任編輯:姜華 來(lái)源: 前端YUE
相關(guān)推薦

2024-02-06 10:04:49

Express框架repo

2020-09-29 09:41:50

Spring Boot項(xiàng)目代碼

2023-12-29 08:31:49

Spring框架模塊

2017-01-13 08:37:57

PythonAlphaGoMuGo

2021-04-23 16:40:49

Three.js前端代碼

2013-06-18 09:51:52

PomeloPomelo平臺(tái)搭建平臺(tái)

2021-07-12 15:50:55

Go 語(yǔ)言netstat命令

2018-12-04 13:30:28

Javascript編譯原理前端

2022-02-11 13:44:56

fiber架構(gòu)React

2020-10-29 16:00:03

Node.jsweb前端

2023-04-07 15:45:13

Emojicode開(kāi)源編碼語(yǔ)言

2023-04-10 14:20:47

ChatGPTRESTAPI

2017-06-08 15:53:38

PythonWeb框架

2011-12-05 10:37:53

Linux服務(wù)器Shell腳本

2018-10-31 10:11:24

Python編程語(yǔ)言語(yǔ)音播放

2022-03-24 14:42:19

Python編程語(yǔ)言

2022-04-06 18:29:58

CSSJS輸入框

2025-10-24 08:13:17

2022-10-08 00:06:00

JS運(yùn)行V8

2023-09-06 09:54:12

AI模型
點(diǎn)贊
收藏

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

亚洲色欲久久久综合网东京热| 国产日韩欧美夫妻视频在线观看 | 日本不卡123| 中文字幕综合在线| 日本黄色大片在线观看| 欧美日韩电影免费看| 中文字幕亚洲电影| 国产在线观看一区| 一级全黄裸体免费视频| 国产小视频一区| 欧美午夜免费影院| 亚洲乱码一区av黑人高潮| 亚洲黄色小视频在线观看| 中文在线手机av| 久久久精品免费观看| 亚洲一区二区三区乱码aⅴ蜜桃女| 日韩精品在线免费看| 四虎国产精品免费观看 | 视频一区二区在线播放| 美女任你摸久久| 97色在线观看免费视频| 欧美特黄一级片| 免费一区二区三区视频导航| 日韩一卡二卡三卡四卡| 超碰在线播放91| 华人av在线| 亚洲激情六月丁香| 亚洲蜜桃av| 青青草视频在线免费观看| 国产乱码精品一区二区三区忘忧草| 欧美自拍视频在线| 精品午夜福利在线观看| 天天影视欧美综合在线观看| 亚洲人成网7777777国产| 亚洲少妇中文字幕| 国产情侣一区在线| 欧美视频你懂的| 成人在线观看a| 国产精品vvv| 悠悠色在线精品| 中文字幕免费高| avtt亚洲| 中文欧美字幕免费| 日韩欧美亚洲精品| 你懂的视频在线观看| 97se亚洲国产综合自在线 | www.五月激情| 韩国三级中文字幕hd久久精品| 国产精品一区二区性色av| 亚洲 欧美 成人| 一本色道久久综合亚洲精品不卡| 欧美激情中文网| 久久久久久久久久久久久女过产乱| jlzzjlzz亚洲女人| 国产一区二区三区视频免费| 国产三级视频网站| 伊人久久大香线蕉无限次| 亚洲精品成人久久久| 又黄又色的网站| 91蝌蚪精品视频| 精品国产免费久久| 日本五十肥熟交尾| 欧美精品中文| 国产丝袜视频一区| 少妇无套高潮一二三区| 欧美最新另类人妖| 最近2019中文字幕第三页视频 | 亚洲视频一二三区| 日本中文字幕一级片| 日本一本在线免费福利| 亚洲成人资源网| 久久9精品区-无套内射无码| 欧洲一级精品| 在线不卡a资源高清| 欧美视频国产视频| 亚洲国产一区二区三区网站| 亚洲成**性毛茸茸| 少妇毛片一区二区三区| 成人激情视频| 色在人av网站天堂精品| 国产精品黄色网| 日精品一区二区三区| 国产日本欧美视频| 国产综合在线播放| 国产日韩精品一区二区三区| 中文字幕剧情在线观看一区| 欧美videossex另类| 欧美日韩在线第一页| 波多野结衣天堂| 美女久久久久久| 欧美成人欧美edvon| 欧美 日本 国产| 国产一区二区三区四区大秀| 久久夜色精品国产| 在线观看日本视频| 日本欧美一区二区| www.一区二区三区| 国产色在线 com| 一区二区久久久| 国产福利一区视频| 2021年精品国产福利在线| 亚洲欧美成人一区二区在线电影| 国产精品1区2区3区4区| 99这里有精品| 成人久久精品视频| 青青青草原在线| 夜夜嗨av一区二区三区中文字幕| 熟女性饥渴一区二区三区| 96sao精品免费视频观看| 日韩av在线免费看| 亚洲欧美一区二区三区四区五区| 免费一级欧美片在线播放| 亚洲a一级视频| 免费在线视频一级不卡| 亚洲一区视频在线观看视频| 手机看片福利日韩| 国产欧美自拍一区| 久久亚洲精品一区二区| 337p粉嫩色噜噜噜大肥臀| 国产99久久久国产精品潘金 | 在线亚洲免费| 91亚色免费| 欧洲美女少妇精品| 日本精品视频一区二区三区| 国产二级一片内射视频播放| 五月天综合网站| 国产精品入口福利| 欧美91精品久久久久国产性生爱| 亚洲图片欧美色图| 91视频福利网| 久久中文字幕av| 国产精品扒开腿做爽爽爽视频 | va天堂va亚洲va影视| 国产亚洲精品久久久久久777| 中日韩精品视频在线观看| 国产福利视频一区二区三区| 小说区视频区图片区| 国产第一精品| 在线观看亚洲视频| www.久久视频| 国产偷v国产偷v亚洲高清| 欧美三级在线观看视频| 国产精品白丝一区二区三区| 久久久久久久久久久国产| 精品区在线观看| 亚洲精品成人天堂一二三| 交换做爰国语对白| 中文字幕日韩一区二区不卡| 91久久久久久久| 国产黄网站在线观看| 欧美精品免费视频| 欧美日韩午夜视频| 国产馆精品极品| 高清无码视频直接看| avtt综合网| 久久久噜噜噜久久中文字免| 日批视频免费播放| 五月天中文字幕一区二区| 中文在线观看免费视频| 国产精品久久久久久模特| 久久久神马电影| 免费观看一级欧美片| 亚洲人精品午夜在线观看| 国产精品乱码一区二区视频| 国产精品欧美久久久久无广告 | 99精品人妻国产毛片| 91在线精品秘密一区二区| 日韩一级在线免费观看| av一区二区在线观看| 国产精品主播视频| av理论在线观看| 精品999在线播放| 国产成人在线视频观看| 国产欧美日韩精品一区| 日日干日日操日日射| 黄色国产精品| 另类欧美小说| 日本欧美在线| 欧美激情综合色| 国产综合在线观看| 9191成人精品久久| 日韩黄色a级片| 国产三级三级三级精品8ⅰ区| 少妇一级淫免费播放| 欧美freesex交免费视频| 国产在线观看一区| 日韩黄色三级| 亚洲91精品在线观看| 国产小视频免费在线网址| 欧美精品成人一区二区三区四区| 久久久综合久久久| 国产欧美精品国产国产专区| 18禁一区二区三区| 视频一区中文字幕| 久久久久久久久网| 伊人久久大香线蕉综合网站| 999精品视频一区二区三区| 黑人巨大精品| 欧美激情一区二区三级高清视频| 电影av在线| 精品国产一区二区三区av性色| 中文字幕第四页| 亚洲免费伊人电影| 午夜精产品一区二区在线观看的| 久久99国产精品免费| 97国产在线播放| 欧美在线首页| 亚洲欧洲日本国产| 日韩影视在线观看| 99国产高清| 久久人人视频| 青草热久免费精品视频| 青青青国内视频在线观看软件| 中文字幕最新精品| 精品资源在线看| 亚洲成色999久久网站| 国产露脸国语对白在线| 一本高清dvd不卡在线观看| 久久久久国产精品夜夜夜夜夜| 国产精品少妇自拍| mm131丰满少妇人体欣赏图| 成人h动漫精品一区二| 日韩欧美中文视频| 麻豆传媒一区二区三区| 丁香啪啪综合成人亚洲| 最新国产乱人伦偷精品免费网站| 亚洲黄色网址在线观看| 日韩欧美一区二区三区免费看| 久久久久久国产精品mv| 91成人噜噜噜在线播放| 92国产精品视频| **国产精品| 国产一区二区在线免费| 91九色综合| 国产精品国产亚洲伊人久久| 欧美日韩视频网站| 日本亚洲欧美三级| 黑人巨大精品| 国产91在线高潮白浆在线观看| 超碰超碰人人人人精品| 欧美一区二区三区免费视| а√天堂中文在线资源8| 国内精品久久久久久中文字幕| 深夜国产在线播放| 久久6精品影院| 欧美14一18处毛片| 久久久久久久成人| heyzo高清国产精品| 久久青草福利网站| 性爱视频在线播放| 欧美激情网站在线观看| 黄色小说在线播放| 久久久综合av| 中日韩脚交footjobhd| 日本国产精品视频| 四虎4545www国产精品| 国产精品精品国产| 亚洲青青一区| 666精品在线| 国产精品调教| 久久66热这里只有精品| 国产欧美一区二区三区精品观看 | 日韩伦理在线电影| 久久久国产精彩视频美女艺术照福利| 黄色av电影在线观看| 免费91在线视频| 国产丝袜视频在线播放| 热久久这里只有| 成人国产激情| 91美女片黄在线观看游戏| 在线日韩成人| 欧美日韩另类综合| 91亚洲国产| 欧美视频在线观看视频| 视频一区中文字幕国产| 欧美又黄又嫩大片a级| 高清久久久久久| 亚洲一区二区三区蜜桃| 中文字幕一区视频| 久久老司机精品视频| 91福利国产精品| 国产伦子伦对白视频| 日韩激情在线视频| 亚洲s色大片| 性欧美办公室18xxxxhd| 91欧美精品| 国产传媒一区二区| 精品视频日韩| 日韩精品一区二区在线视频| 久久蜜桃精品| 少妇欧美激情一区二区三区| 91麻豆6部合集magnet| 黄色录像免费观看| 色诱亚洲精品久久久久久| 国产精品毛片一区二区在线看舒淇 | 色天天色综合| 黄色免费高清视频| 久久国产精品久久w女人spa| www.久久av.com| 91网站在线观看视频| 日韩精品一区二区亚洲av性色| 欧美日韩亚洲激情| 99热这里是精品| 国产一区二区三区在线视频| www555久久| 国产精品夜间视频香蕉| 欧美日韩一本| 日韩精品福利片午夜免费观看| 日韩电影在线免费观看| 中文字幕在线视频播放| 亚洲视频免费观看| 无码无套少妇毛多18pxxxx| 亚洲精品一区二区三区精华液| 日韩黄色影院| 国产精品吹潮在线观看| 国产精品对白| av一区二区三区免费观看| 久久se精品一区精品二区| 中文字幕免费高清| 天天综合色天天综合| 亚洲黄色片视频| 亚洲色图网站| 欧美专区日韩视频| 国产精品流白浆在线观看| 日本黄色a视频| 日本亚洲欧美天堂免费| 人妻少妇精品视频一区二区三区| 亚洲精品伦理在线| 一级久久久久久久| 国产亚洲欧洲高清一区| 碰碰在线视频| 国产女人水真多18毛片18精品| 欧美国产激情| 夜夜爽久久精品91| 亚洲国产精华液网站w| 天天干,天天干| 亚洲美女性视频| 亚洲欧洲自拍| 麻豆传媒一区| 羞羞答答国产精品www一本 | 日本99精品| 国产成人三级视频| 国产真实乱偷精品视频免| 羞羞在线观看视频| 欧美日韩国产另类一区| 视频三区在线| 91精品久久久久久久久青青| 日韩欧美字幕| 在线观看国产福利| 国产精品成人午夜| 国产又粗又猛又爽| 久久成人在线视频| 国产精选久久| 免费cad大片在线观看| 国产98色在线|日韩| 久久精品国产亚洲av高清色欲| 精品国产一区二区国模嫣然| 黄视频网站在线观看| 久久青青草综合| 日韩电影在线免费观看| 国产美女高潮视频| 欧美一级专区免费大片| 激情av在线播放| 久久av一区二区| 欧美bbbbb| 日韩黄色免费观看| 精品99一区二区三区| 一区二区电影免费观看| 手机成人在线| 国产成人av资源| 一级片中文字幕| 中文字幕日韩专区| 榴莲视频成人app| 日韩中字在线观看| 国产欧美中文在线| 99久久精品国产色欲| 午夜欧美大片免费观看| 成人精品视频| 中文字幕在线观看视频www| 午夜精品免费在线| 国产高清视频在线| 91av免费看| 香蕉久久夜色精品| 999精品在线视频| 亚洲成成品网站| 123成人网| 国产欧美日韩小视频| 欧美国产一区视频在线观看| 午夜美女福利视频| 国产成人一区二区三区电影| 永久亚洲成a人片777777| 蜜桃精品成人影片| 欧美久久久久久久久| 成入视频在线观看| 青春草在线视频免费观看| 2020国产成人综合网| 国产高清免费av| 国产精品高潮呻吟久久av无限 | 国内国产精品天干天干| 午夜影院久久久|