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

如何用原生 JS,快速寫一個貪吃蛇小游戲

開發(fā) 前端
游戲元素的話一共有 3 個,蛇頭,身體和蘋果。就用 3 個構造函數(shù)來生成坐標,以及給對應坐標的那個對象里面添加不同的屬性。

前言

貪吃蛇算是小游戲里面比較好寫的,沒有什么難點,基本上需要實現(xiàn)的功能,都能很順利的用代碼敲出來。

1、繪制游戲區(qū)域和游戲元素

仍然是用 16 * 16 的二維數(shù)組來繪制,對這個數(shù)組進行遍歷。第一層遍歷的時候創(chuàng)建 tr,第二層遍歷的時候創(chuàng)建 td。然后添加一些 CSS 樣式,游戲區(qū)域就寫好了。

let arr = [  [{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}],
[{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}],
[{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}],
[{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}],
[{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}],
[{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}],
[{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}],
[{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}],
[{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}],
[{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}],
[{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}],
[{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}],
[{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}],
[{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}],
[{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}],
[{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}],
]
//渲染游戲區(qū)域
const renderTable = () {
document.querySelector('table').innerHTML = ''
arr.forEach(item {
//第一層遍歷創(chuàng)建tr
let tr = document.createElement('tr')
item.forEach(item2 {
//第二層遍歷創(chuàng)建td
let td = document.createElement('td')
tr.appendChild(td)
})
document.querySelector('table').appendChild(tr)
})
}
renderTable()

CSS&HTML:

 <style>
table {
margin: 0px auto;
border-collapse: collapse;
border: 5px solid black;
}
td {
border-radius: 50%;
width: 40px;
height: 40px;
border: none
}
.bgc1 {
background-color: black;
}
.bgc2 {
background: url(./pngsucai_512252_f77802.png) no-repeat;
background-size: 100%;
z-index: 1;
}
.bgc3 {
background: url(./92034446ddc7a91edec038f2d69415fd.jpeg)no-repeat;
background-size: 100%;
z-index: 9;
}
.defen {
font-size: 30px;
position: absolute;
top: 40%;
right: 20px;
}
</style>
<body>
<table></table>
<div class="defen">
鍵盤上下左右控制,Enter鍵暫停
<br>
<br>
得分
<br>
<span>0</span>
</div>
<script src="./貪吃蛇2.0.js"></script>
</body>

游戲元素的話一共有 3 個,蛇頭,身體和蘋果。就用 3 個構造函數(shù)來生成坐標,以及給對應坐標的那個對象里面添加不同的屬性。用構造函數(shù)寫既方便查找,也方便修改。然后寫個渲染函數(shù),格子里面對應的不同的屬性,就渲染出不同的樣式。

//渲染樣式的函數(shù)
const renderColor = () {
arr.forEach((item, index) => {
const trArr = document.querySelectorAll('tr')
item.forEach((item2, index2) => {
//頭部渲染
if (item2.head === 1) {
trArr[index].querySelectorAll('td')[index2].classList.add('bgc3')
}
//身體渲染成黑色
else if (item2.body === 1) {
trArr[index].querySelectorAll('td')[index2].classList.remove('bgc3')
trArr[index].querySelectorAll('td')[index2].classList.remove('bgc2')
trArr[index].querySelectorAll('td')[index2].classList.add('bgc1')
}
//蘋果渲染
else if (item2.apple === 1) {
trArr[index].querySelectorAll('td')[index2].classList.add('bgc2')
}
//如果是其他的值,就把這個樣式清空
else {
trArr[index].querySelectorAll('td')[index2].className = ''
}
})
})
}
//蛇頭構造函數(shù)
function Head(x, y) {
this.x = x
this.y = y
this.render = function (a) {
arr[this.y][this.x].head = a
}
}
//身體構造函數(shù)
function Body(x, y) {
this.x = x
this.y = y
this.render = function (a) {
arr[this.y][this.x].body = a
}
}
//蘋果構造函數(shù)
function Apple(x, y) {
this.x = x
this.y = y
this.render = function (a) {
arr[this.y][this.x].apple = a
}
}
//依次渲染默認出現(xiàn)的頭部,身體和蘋果
let a = new Head(10, 10)
a.render(1)
//聲明一個存放身體元素的數(shù)組,移動以及判斷獲勝都需要用到這個數(shù)組的功能
let bodyArr = []
let b = new Body(10, 11)
bodyArr.push(b)
b.render(1)
let c = new Apple(5, 5)
c.render(1)
renderColor()

2、移動功能

移動功能要分兩個步驟來寫。一個是蛇頭的移動,一個是身體的移動。貪吃蛇的身體它不是一個整理,是不能寫成一塊的。蛇頭動的時候,身體它得扭來扭去,這才像個蛇。

蛇頭移動很簡單,上下左右鍵對應著蛇頭 X 和 Y 兩個值的加減。X 和 Y 超出范圍,代碼就會報錯。就可以直接用 try catch 來判斷邊界。報錯了就說明出界了,直接走 catch 的游戲結束。

注意: 這個游戲唯一麻煩一點的地方來了,怎么讓蛇身體能扭起來。相通一個邏輯,這個問題就迎刃而解了。

蛇身體怎么移動,是身體里的每個元素都往前移動一格嗎,顯然不是。仔細觀察你會發(fā)現(xiàn),蛇移動時,身體的中間部分其實是不動的。動的只有最前端和最末端的兩格。也就是說蛇移動時,其實就是把身體最末端的格子移動到了身體最前端,其他的都不需要動。前面聲明的身體元素數(shù)組就是這個時候用的。把身體的最后一個元素移動到頭部,同時數(shù)組里的最后一個元素也要移動到最前面去。

//上下左右移動函數(shù)
const up = () {
//用try catch來判斷是否出界
try { //把移動的函數(shù)寫在try里面,如果出界了就會報錯,然后走catch里的代碼
//移動的時候先清除當前格子的樣式
a.render(0)
a.y -= 1
//然后渲染新樣式
a.render(1)
} catch {
clearInterval(timer)
alert('游戲結束!')
location.reload()
}
//調(diào)用吃蘋果函數(shù)
eat()
//讓數(shù)組中的最后一個元素,移動到頭部剛才所在的位置
bodyArr[bodyArr.length - 1].render(0)
//這個a.x,a.y+1就是頭部移動前的坐標
bodyArr[bodyArr.length - 1].x = a.x
bodyArr[bodyArr.length - 1].y = a.y + 1
bodyArr[bodyArr.length - 1].render(1)
//把身體數(shù)組里的最后一個元素移到最開頭
bodyArr.unshift(bodyArr.pop())
renderColor()
//調(diào)用判斷游戲結束函數(shù)
end()
}
const down = () {
try {
a.render(0)
a.y += 1
a.render(1)
}
catch {
clearInterval(timer)
alert('游戲結束!')
location.reload()
}
eat()
//讓數(shù)組中的最后一個元素,移動到頭部剛才所在的位置
bodyArr[bodyArr.length - 1].render(0)
bodyArr[bodyArr.length - 1].x = a.x
bodyArr[bodyArr.length - 1].y = a.y - 1
bodyArr[bodyArr.length - 1].render(1)
bodyArr.unshift(bodyArr.pop())
renderColor()
end()
}
const right = () {
try {
a.render(0)
a.x += 1
a.render(1)
}
catch {
clearInterval(timer)
alert('游戲結束!')
location.reload()
}
eat()
//讓數(shù)組中的最后一個元素,移動到頭部剛才所在的位置
bodyArr[bodyArr.length - 1].render(0)
bodyArr[bodyArr.length - 1].x = a.x - 1
bodyArr[bodyArr.length - 1].y = a.y
bodyArr[bodyArr.length - 1].render(1)
bodyArr.unshift(bodyArr.pop())
renderColor()
end()
}
const left = () {
try {
a.render(0)
a.x -= 1
a.render(1)
}
catch {
clearInterval(timer)
alert('游戲結束!')
location.reload()
}
eat()
//讓數(shù)組中的最后一個元素,移動到頭部剛才所在的位置
bodyArr[bodyArr.length - 1].render(0)
bodyArr[bodyArr.length - 1].x = a.x + 1
bodyArr[bodyArr.length - 1].y = a.y
bodyArr[bodyArr.length - 1].render(1)
bodyArr.unshift(bodyArr.pop())
renderColor()
end()
}

3、寫鍵盤事件

寫鍵盤事件的時候要加一個判斷,讓這個蛇只能夠相對它自身左右移動。不能掉頭,也不能向前沖,向前沖很容易就撞到墻了。

let num = 1
document.addEventListener('keydown', function (e) {
//flag是暫停功能的變量
if (flag) {
if (e.key === 'ArrowDown') {
//蛇頭只能夠向左或者向右移動,否則沖太快容易死。也不可以調(diào)頭。
if (num == 2 || num == 4) {
down()
num = 3
}
} else if (e.key === 'ArrowRight') {
if (num == 1 || num == 3) {
right()
num = 2
}
} else if (e.key === 'ArrowLeft') {
if (num == 1 || num == 3) {
left()
num = 4
}
} else if (e.key === 'ArrowUp') {
if (num == 2 || num == 4) {
up()
num = 1
}
}
}
})

4、吃蘋果功能

吃蘋果功能分為 3 個步驟

1.判斷頭部和蘋果有沒有重合,重合的話,就讓這個蘋果消失,讓分數(shù) +1。

2.生成隨機坐標來渲染蘋果,判斷一下這個坐標上是否與蛇身體重合了,重合的話就要重新生成坐標。

3.生成一個新的身體實例,并且把這個新實例添加到身體數(shù)組中。

//得分
let fen = 0
//吃蘋果
const eat = () {
//如果頭部和蘋果重合了
if (arr[a.y][a.x].apple == 1) {
//清除這個蘋果
arr[a.y][a.x].apple = 0
//分數(shù)加1
fen++
//調(diào)用判斷游戲勝利函數(shù)
win()
//渲染分數(shù)
document.querySelector('.defen span').innerHTML = fen
//用循環(huán)來生成新蘋果,滿足條件就退出循環(huán)
while (true) {
const x = Math.floor(Math.random() * 16)
const y = Math.floor(Math.random() * 16)
//判斷蘋果不能出現(xiàn)在身體上
if (!arr[y][x].head && !arr[y][x].body) {
arr[y][x].apple = 1
break
}
}
//生成新的身體實例
let b = new Body(bodyArr[bodyArr.length - 1].x, bodyArr[bodyArr.length - 1].y)
b.render(1)
bodyArr.push(b)
}
}

5、頭部碰到身體游戲失敗的功能

和吃蘋果的邏輯一樣,就判斷頭部和身體是不是重合的。

//碰到身體游戲失敗判定
const end = () {
//如果頭部和身體重合了
if (arr[a.y][a.x].body == 1) {
clearInterval(timer)
alert('游戲結束!')
location.reload(true)
}
}

6、自動移動的功能

自動移動可以通過間歇函數(shù)來實現(xiàn),然后不能單純的在間歇函數(shù)的回調(diào)里面寫上下左右的某一個,要判斷一下蛇當前的移動方向是什么。然后來一個分數(shù)越高速度越快的功能。

//自動向前移動功能
let timer
//封裝一個向前移動的函數(shù)
function move() {
if (num == 1) {
up()
} else if (num == 2) {
right()
} else if (num == 3) {
down()
} else {
left()
}
}
//寫自動移動的間歇函數(shù)
time()
function time() {
//來個分越高速度越快的功能
if (fen <= 20) {
timer = setInterval(function () {
move()
}, 250)
} else if (fen > 20 && fen <= 40) {
clearInterval(timer)
timer = setInterval(function () {
move()
}, 200)
} else {
clearInterval(timer)
timer = setInterval(function () {
move()
}, 150)
}
}

7、暫停功能和判斷游戲勝利

這兩個比較簡單,就一起說了。暫停功能就是讓定時器停止,并且讓flag變量變?yōu)閒alse。這樣就不能再去控制蛇了。這個游戲一共有256個格子,勝利的條件就是身體有255個元素,因為要減去一個頭部。

//暫停功能
let flag = true
document.addEventListener('keydown', function (e) {
if (flag) {
if (e.key === 'Enter') {
clearInterval(timer)
flag = !flag
}
} else {
if (e.key === 'Enter') {
time()
flag = true
}
}
})
//勝利條件,身體數(shù)組的元素等于255個就獲勝
const win = () {
if (bodyArr.length == 255) {
clearInterval(timer)
alert('游戲勝利!')
location.reload()
}
}

寫在最后

游戲到這里就寫完了,代碼雖然看起來多,但是并沒有什么難的地方,想到就能寫。唯一麻煩一點的就是那個身體的移動,相通了就很簡單了。

責任編輯:姜華 來源: 前端YUE
相關推薦

2020-08-20 20:30:49

C語言小游戲貪吃蛇

2022-11-09 11:57:17

原生JS五子棋

2021-06-15 09:18:51

鴻蒙HarmonyOS應用

2012-06-05 14:42:57

Silverlight

2024-12-17 17:46:05

Android原生控件貪吃蛇

2022-07-25 14:17:04

JS應用開發(fā)

2015-07-31 11:26:24

Swift貪吃蛇

2021-09-02 15:25:53

鴻蒙HarmonyOS應用

2024-01-18 11:22:41

C++Windows開發(fā)

2023-10-17 10:20:53

VueReact

2022-10-28 09:33:10

Linux貪吃蛇

2023-05-11 08:26:56

2021-04-20 11:40:12

Linux圖形庫curses

2021-04-13 06:35:13

Elixir語言編程語言軟件開發(fā)

2016-09-22 21:12:14

2022-03-24 07:57:58

Python水果忍者游戲

2020-11-30 06:20:13

javascript

2016-09-14 21:17:47

PythonAsyncio游戲

2016-09-19 21:24:08

PythonAsyncio游戲

2022-04-14 20:43:24

JavaScript原型鏈
點贊
收藏

51CTO技術棧公眾號

国产精品无码久久久久久| japanese在线视频| 黄色av网站免费| 99久久.com| 精品噜噜噜噜久久久久久久久试看| 欧美这里只有精品| 国内三级在线观看| 国产综合久久久久影院| 97在线看福利| 亚洲欧洲综合网| 国产精品白浆| 欧美日韩中文字幕精品| 国产日韩亚洲欧美在线| 国产日韩精品在线看| 盗摄精品av一区二区三区| 国产精品国产亚洲伊人久久| 玖玖爱免费视频| 欧美日韩伦理| 亚洲国产91精品在线观看| 蜜臀视频一区二区三区| 波多一区二区| 中文字幕五月欧美| 欧美精品一区二区三区久久| 午夜精品久久久久久久99热黄桃 | 一区二区视频免费| 999亚洲国产精| 久久久国产成人精品| 亚洲天堂视频一区| 国产成人在线中文字幕| 7777精品伊人久久久大香线蕉完整版| 中文字幕国产亚洲2019| 国产精品xxx在线观看www| 在线观看日本网站| 很黄很黄激情成人| 久久精品91久久久久久再现| 西西444www无码大胆| 懂色av一区二区| 日韩一级视频免费观看在线| 美女网站视频黄色| 成人av观看| 午夜不卡在线视频| 18禁裸男晨勃露j毛免费观看| 麻豆视频免费在线观看| 国产精品免费人成网站| 日韩在线电影一区| 国产免费视频在线| 久久久精品黄色| 九九九九精品| 深爱五月激情五月| www.色精品| 国模精品一区二区三区| 天天干天天操av| k8久久久一区二区三区| 国产日韩欧美精品| 欧美性猛交 xxxx| 岛国精品在线播放| 国产成人av一区二区三区| 精品国精品国产自在久不卡| 国产在线播精品第三| 91久久久久久久一区二区| 97caocao| 国产精品综合在线视频| 91精品婷婷国产综合久久蝌蚪| 国产又大又长又粗| 国产一区二区美女| 亚洲xxx大片| 乱色精品无码一区二区国产盗| 国产99久久久精品| 国产中文一区二区| 激情小视频在线观看| 国产欧美一区二区在线| 亚洲午夜久久久影院伊人| 日本高清中文字幕在线| 亚洲精品中文字幕乱码三区| www.男人天堂网| 波多野结衣一二区| 啦啦啦中文在线观看日本| 久久人人爽人人爽| 亚洲美女搞黄| 伊人影院蕉久影院在线播放| 亚洲一区二区3| 国产最新免费视频| 成人在线免费电影网站| 欧美一区二区女人| 男人的天堂影院| 国产精品欧美在线观看| 自拍偷拍亚洲一区| 免费中文字幕视频| 久久久国产亚洲精品| 成人看片人aa| 熟妇人妻系列aⅴ无码专区友真希| 久久毛片高清国产| 亚洲免费视频一区| av中文字幕在线看| 欧美性做爰猛烈叫床潮| 欧美xxxxxbbbbb| 希岛爱理av免费一区二区| 中文字幕日韩高清| 欧美日韩中文字幕在线观看| 国产亚洲永久域名| 成人综合网网址| 色在线免费视频| 1区2区3区欧美| 91专区在线观看| 亚洲国产综合在线观看| 日韩av一卡二卡| 日韩一卡二卡在线观看| 亚洲二区在线| 成人激情免费在线| 欧美色图另类| 亚洲综合久久久| 中文字幕视频在线免费观看| 动漫av一区| x99av成人免费| 精品欧美一区二区三区免费观看 | 欧美日韩在线一区| 亚洲女人在线观看| 精品久久影院| 91精品国产九九九久久久亚洲| 亚洲熟妇av乱码在线观看| 99久久精品国产麻豆演员表| 久久久无码中文字幕久...| 主播大秀视频在线观看一区二区| 精品国产一区二区三区不卡 | 青青免费在线视频| 亚洲国产欧美在线| 91看片破解版| 色狮一区二区三区四区视频| 热久久免费视频精品| 亚洲精品成av人片天堂无码| 中文字幕一区二区三区在线观看| 国产精品-区区久久久狼| 超碰地址久久| 久久综合伊人77777| 中文字幕在线观看精品| 国产香蕉久久精品综合网| 少妇高潮毛片色欲ava片| 精品国产三级| 久久五月天色综合| 一级欧美一级日韩| 国产精品嫩草99a| 亚洲欧美久久久久| 日韩av在线中文字幕| 国产精品大陆在线观看| 黄色片免费在线| 在线视频欧美精品| 免费网站在线高清观看| 丝袜亚洲另类欧美| 欧洲精品亚洲精品| 日韩精品免费观看视频| 一区二区三区国产视频| 9i精品福利一区二区三区| 久久色视频免费观看| 免费在线激情视频| 久久91精品| 国产精品黄视频| 在线视频91p| 69精品人人人人| 欧美又粗又大又长| av动漫一区二区| 青青艹视频在线| 久久99国产精品视频| 国产精品精品视频一区二区三区| 91caoporn在线| 欧美精品aⅴ在线视频| 欧美特级一级片| 国产91在线看| 9久久9毛片又大又硬又粗| 真实原创一区二区影院| 国产精品一区二区三区久久久| 黄色视屏免费在线观看| 日韩欧美激情四射| 日韩成人免费在线视频| 91毛片在线观看| 国产原创精品在线| 91超碰成人| 久久国产精品高清| 亚洲欧美在线成人| 久久人人爽人人爽人人片亚洲| 亚洲成熟女性毛茸茸| 欧美日韩免费网站| 国产一二三av| 国产成a人亚洲精| 97成人在线观看视频| 日韩av免费大片| 翡翠波斯猫1977年美国| 久久爱91午夜羞羞| 久久九九国产精品怡红院 | 成人黄色激情视频| 亚洲色图在线播放| 日本护士做爰视频| 老司机精品视频一区二区三区| 日韩精品手机在线观看| 亚洲人亚洲人色久| 97视频热人人精品| 欧美精选视频一区二区| 欧美大学生性色视频| 精华区一区二区三区| 日韩免费一区二区三区在线播放| 免费视频久久久| 亚洲欧美日本在线| 日韩在线免费观看av| 国产麻豆91精品| www.超碰com| av成人天堂| 中文字幕中文字幕99| 一区二区导航| 不卡的av一区| 99tv成人影院| 国产精品96久久久久久| 电影k8一区二区三区久久| 日韩在线视频一区| 日本大片在线观看| 精品国产乱码久久久久久图片| 伊人网av在线| 一本一本大道香蕉久在线精品 | 欧美嫩在线观看| 天天做天天爱夜夜爽| 亚洲女同一区二区| 老司机福利在线观看| 久久综合九色综合97_久久久| 日本美女久久久| 蜜桃视频在线一区| 丁香啪啪综合成人亚洲| 亚洲国产三级| 日本黄色片一级片| 你懂的视频一区二区| 亚洲欧洲免费无码| 国产精品一区高清| 久精品国产欧美| 国产主播性色av福利精品一区| 91日本在线观看| 日韩深夜福利网站| 国产日韩欧美在线视频观看| av激情成人网| 国产ts一区二区| 波多野结衣亚洲一二三| 78m国产成人精品视频| www在线观看黄色| 久久久久久久久网站| 影音先锋在线播放| 欧美xxxx做受欧美| 中文字幕在线观看网站| 久久亚洲欧美日韩精品专区| 欧美天天影院| 日韩中文字幕视频| 日本福利专区在线观看| 日韩亚洲成人av在线| av免费在线一区二区三区| 中文字幕一区日韩电影| 91青青在线视频| 中文字幕日韩免费视频| 午夜国产福利在线| 久久国内精品一国内精品| 黄色片网站在线| 欧美成人第一页| 欧美韩日亚洲| 久久久在线视频| 日韩av一卡| 日本久久久久久久久| 国产经典一区| 国产男女猛烈无遮挡91| 国产精品亚洲一区二区在线观看 | 国产精品88久久久久久| 在线观看成人免费| 国产精品成人a在线观看| 日本xxx免费| 在线欧美视频| 国产a级片免费观看| 久久国内精品自在自线400部| 色呦色呦色精品| 丁香亚洲综合激情啪啪综合| 星空大象在线观看免费播放| 久久精品人人做人人综合| 国产精品成人在线视频| 亚洲另类在线一区| 国产奶水涨喷在线播放| 色综合久久久久网| 888奇米影视| 亚洲成人动漫在线播放| 国产在线视频资源| 伦理中文字幕亚洲| 91吃瓜在线观看| 国产精品久久久久久久久久小说| 综合欧美精品| 久久国产精品99久久久久久丝袜| 成人影院在线| 国产精品又粗又长| 另类综合日韩欧美亚洲| 91传媒理伦片在线观看| 中文无字幕一区二区三区| 欧美黄色免费观看| 在线精品国精品国产尤物884a| 国产精品一区二区三区在线免费观看 | 在线日韩av观看| 男女视频在线| 国产精品美乳在线观看| www.丝袜精品| 一区二区三区久久网| 99精品国产99久久久久久福利| 在线观看国产中文字幕| 99久久99久久综合| 欧美日韩色视频| 一本久久综合亚洲鲁鲁五月天| 97人妻精品一区二区三区软件| 亚洲精选在线观看| 日本高清在线观看| 国产精品视频资源| 欧美成人一区在线观看| 日韩一级特黄毛片| 日韩电影一二三区| 国产中文字幕一区二区| 亚洲综合在线五月| 亚洲午夜激情视频| 亚洲男人的天堂网站| 国产嫩草在线视频| 成人黄色影片在线| 日韩av久操| 污污视频网站免费观看| 97se亚洲国产综合自在线观| www.色小姐com| 欧美日韩精品三区| 国产网站在线播放| 日韩av大片在线| 欧美一级全黄| 亚洲熟妇无码一区二区三区| 国产精一区二区三区| 91精品少妇一区二区三区蜜桃臀| 色偷偷成人一区二区三区91| 亚洲人妻一区二区| 欧美—级高清免费播放| 欧美激情三级| 久久av秘一区二区三区| 蜜臀av一区二区在线观看 | av在线不卡免费观看| 男人天堂网视频| 26uuu久久天堂性欧美| 日韩精品久久久久久久酒店| 精品免费99久久| 欧美xxx黑人xxx水蜜桃| 亚洲综合精品伊人久久| 国产精品精品国产一区二区| 麻豆一区二区三区视频| 中文字幕不卡在线播放| 中文字幕在线观看视频一区| 最近2019免费中文字幕视频三| 国产91在线精品| 日韩欧美视频一区二区三区四区| 老牛影视一区二区三区| 69精品无码成人久久久久久| 欧美优质美女网站| 8888四色奇米在线观看| 成人黄色免费片| 欧美破处大片在线视频| 2018国产精品| 精品久久久免费| 久草在线青青草| 国产精品入口尤物| 国产精品久久久久一区二区三区厕所| 亚洲一区二区在线视频观看| 亚洲欧美另类小说| 国产小视频免费观看| 55夜色66夜色国产精品视频| 国产成人影院| 一级做a免费视频| 一区二区三区蜜桃网| 成人无码一区二区三区| 57pao国产成人免费| 激情综合网站| 午夜一区二区视频| 一区二区三区日本| 亚洲欧美日韩免费| 国产精品男人的天堂| 欧美va亚洲va日韩∨a综合色| 在线观看免费视频国产| 欧美性生活大片免费观看网址| 成人在线免费公开观看视频| 成人国产在线激情| 亚洲全部视频| 蜜桃av免费观看| 欧美精品一区二区三区在线| 欧美日韩123区| 最新av网址在线观看| 97成人超碰视| 国产人妖一区二区三区| 性亚洲最疯狂xxxx高清| 精品精品久久| aaa黄色大片| 欧美视频日韩视频| av老司机在线观看| 五月天色一区| 成人国产精品免费观看| 国产三级理论片| 高清欧美性猛交xxxx黑人猛交| jvid福利在线一区二区| 佐佐木明希电影| 欧美精品久久一区| 免费日韩电影| 日韩极品视频在线观看| 国产日韩在线不卡|