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

久久久久毛片| 日韩福利一区二区| 欧美国产91| 亚洲第一黄色网| 北条麻妃在线观看| av在线播放av| 国产91综合一区在线观看| 性欧美激情精品| 天美传媒免费在线观看| 亚洲一区网址| 91久久精品一区二区| 少妇熟女一区二区| 头脑特工队2在线播放| 蜜桃久久av一区| 欧美精品久久久久a| 熟女少妇内射日韩亚洲| heyzo欧美激情| 欧美三区在线观看| 男女激情免费视频| 午夜视频在线观看免费视频| 成人av网址在线| 91精品久久久久久久久不口人| 日韩视频免费观看高清| 亚洲91中文字幕无线码三区| 日韩国产欧美精品在线| 成人在线短视频| 国产综合av| 懂色av中文字幕| 国产精品露脸自拍| 免费成人深夜天涯网站| y111111国产精品久久久| 欧美视频一区二区三区在线观看| 少妇人妻大乳在线视频| 成人在线播放| 国产精品久久影院| 久久综合入口| 蜜桃视频在线观看www| 日本特黄久久久高潮| 91av在线播放| 久久久久久久久久网站| 中文在线日韩| 一区二区欧美亚洲| 欧美 日韩 国产 成人 在线观看| 久久久免费毛片| 精品少妇一区二区| 中文字幕在线观看视频www| 成人激情视屏| 欧美午夜精品一区二区蜜桃| 凹凸日日摸日日碰夜夜爽1| 欧美13videosex性极品| 亚洲一区二区三区爽爽爽爽爽| 亚洲成年人专区| 国产乱色在线观看| 亚洲柠檬福利资源导航| 精品一区二区成人免费视频| 91大神xh98hx在线播放| 国产精品人妖ts系列视频| 日韩资源av在线| 电影在线一区| 国产精品蜜臀av| 亚洲一区不卡在线| 日本电影全部在线观看网站视频| 国产精品福利一区二区| 中文字幕一区二区三区最新| 黄色av电影在线观看| 亚洲免费观看高清完整版在线观看| 丰满女人性猛交| 日韩欧美一起| 偷拍一区二区三区| 精品久久久久av| 精品视频一区二区三区四区五区| 欧美在线一二三四区| 亚洲精品www.| 一区二区三区四区高清视频| 亚洲激情中文字幕| 91视频免费在观看| 香蕉视频官网在线观看日本一区二区| 久久中国妇女中文字幕| 国产在线免费视频| 欧美亚洲网站| 国产在线精品成人一区二区三区| 国产女人爽到高潮a毛片| 国产成人免费网站| 久久久com| 在线观看免费网站黄| 亚洲精品国产一区二区精华液| 香蕉视频免费版| 1234区中文字幕在线观看| 富二代精品短视频| 天天干天天综合| 国产精品白浆| 精品一区二区电影| 久久精品亚洲a| 亚洲电影成人| 国产精品香蕉在线观看| 北条麻妃一二三区| 国产亚洲欧美一级| 欧美在线观看黄| 黑人巨大精品| 精品国产自在久精品国产| b站大片免费直播| 欧美国产91| 国产精品久久久久高潮| www.成人精品| 国产网站一区二区| 久久亚洲a v| 成人自拍视频网| 精品国产91久久久久久久妲己| 国产熟女一区二区| 在线日本成人| 亚洲一区二区三区xxx视频| 神马久久精品| 亚洲综合一区二区三区| 网站一区二区三区| 五月综合久久| 欧美激情中文网| 国产又粗又猛又爽又黄的视频一| 91麻豆免费在线观看| 天堂а√在线中文在线| 99久久婷婷国产综合精品首页| 亚洲福利视频免费观看| 国产女人18水真多毛片18精品| 久久久蜜桃一区二区人| 国产精品一区二区三区不卡| 黄色动漫在线| 欧美伦理视频网站| 国产黄片一区二区三区| 国产精品一卡| 久久国产精品-国产精品| 激情图片在线观看高清国产| 欧美日韩三级一区二区| 四虎国产精品成人免费入口| 国产一区白浆| 精品伦理一区二区三区| 天天干在线视频论坛| 在线播放视频一区| 中文字幕在线观看二区| 日韩黄色片在线观看| 免费在线观看91| 久草免费在线视频| 日韩av网站在线| 日本在线小视频| 岛国精品一区二区| 日本wwwcom| 99re91这里只有精品| 久99九色视频在线观看| 国产三级午夜理伦三级| 亚洲日本一区二区| 中文字幕资源在线观看| 99成人在线视频| 国产日本欧美视频| 免费a级在线播放| 7777精品伊人久久久大香线蕉最新版| 亚洲女同二女同志奶水| 久久黄色级2电影| 最新欧美日韩亚洲| 国产精品欧美一区二区三区不卡| 久久精品国产v日韩v亚洲| 一区二区三区精| 亚洲人午夜精品天堂一二香蕉| 五月激情婷婷在线| 中文字幕乱码亚洲无线精品一区| yellow视频在线观看一区二区| 亚洲羞羞网站| 亚洲国内高清视频| www.国产一区二区| 国产日韩av一区二区| 午夜免费福利在线| 我不卡影院28| 国产精品sss| 亚洲精品一区| 这里只有精品视频在线| 99热这里只有精品在线观看| 夜夜揉揉日日人人青青一国产精品| www.美色吧.com| 午夜亚洲伦理| 不卡中文字幕在线| 8848成人影院| 日韩免费av一区二区| 亚洲1卡2卡3卡4卡乱码精品| 欧美成人一区二区三区| 日韩一区二区视频在线| 国产日韩精品一区二区三区| 99九九精品视频| 国产日韩一区二区三区在线播放 | 日韩 欧美 综合| 久久久久亚洲蜜桃| 亚洲欧美日韩一二三区| 亚洲九九精品| 日韩亚洲视频| 日韩欧美久久| 国产精品mp4| 天堂av资源在线观看| 亚洲人成在线播放| 国产黄色片网站| 在线观看视频欧美| 久久久精品国产sm调教| 国产亚洲欧洲一区高清在线观看| www激情五月| 日韩精品每日更新| 国产欧美日韩小视频| 日韩片欧美片| 久久99精品国产一区二区三区| 男人天堂久久| 奇门遁甲1982国语版免费观看高清| 黄色大片在线播放| 国产一区二区三区中文| 黄色小视频免费观看| 欧美三区在线观看| 天天干天天干天天| 亚洲影视资源网| 羞羞在线观看视频| 久久日韩精品一区二区五区| 无码人妻一区二区三区一| 日韩av在线发布| 日日摸日日碰夜夜爽无码| 91超碰国产精品| 日韩精品一区二区三区外面| 麻豆视频一区| 国产高清在线一区| 欧美成人aaa| 国产精品扒开腿做爽爽爽男男| 色呦呦在线看| 久久国产精品网站| 欧美一级二级三级区| 亚洲一级黄色片| 你懂的视频在线观看| 精品国产亚洲一区二区三区在线观看| 136福利视频导航| 欧美在线免费观看亚洲| 综合激情网五月| 婷婷久久综合九色综合绿巨人 | 成人黄色在线播放| 日韩一区二区三区免费| 日本一本a高清免费不卡| 咪咪网在线视频| 91精品国产91久久久久| heyzo在线| 久久免费视频这里只有精品| 宅男网站在线免费观看| 大量国产精品视频| 成人免费在线| 欧美精品在线网站| 亚洲色图美国十次| 欧美高清一级大片| 污污影院在线观看| 欧美日韩国产91| 日本片在线观看| 隔壁老王国产在线精品| 国产色婷婷在线| 97在线精品视频| 一个人看的www视频在线免费观看| 亚洲91精品在线| 色资源二区在线视频| 人人澡人人澡人人看欧美| 亚洲天堂电影| 国产伦精品免费视频| 一区二区三区日本视频| 成人做爰www免费看视频网站| 9999在线精品视频| 97人人香蕉| 国产精品黄网站| 欧美12av| 日韩精品诱惑一区?区三区| 天天干天天色天天爽| 午夜精品国产| 国产白丝袜美女久久久久| 亚洲综合不卡| 中文字幕国产免费| 国产一区不卡精品| 久久久久久久人妻无码中文字幕爆| 本田岬高潮一区二区三区| 99久久久无码国产精品性| 国产精品三级电影| 国产在线免费视频| 日本韩国一区二区三区| 国产一区二区三区三州| 欧美不卡在线视频| 男女污污视频在线观看| 久久九九热免费视频| 高潮在线视频| 国产精品日韩在线播放| 6080成人| 日韩久久久久久久久久久久久| 99久精品视频在线观看视频| 99在线免费视频观看| 日韩精品亚洲一区二区三区免费| 在线一区二区不卡| 成人高清视频在线观看| 免费网站在线高清观看| 亚洲影视在线观看| 中文字幕乱码在线观看| 日韩一级完整毛片| 狠狠狠综合7777久夜色撩人| 久久国产精品影片| 亚洲日本在线观看视频| 国产一区二区免费电影| 成人羞羞视频播放网站| 精品无码一区二区三区爱欲| 麻豆一区二区三| 国产三级视频网站| 亚洲精品中文字幕在线观看| 日韩电影在线观看一区二区| 日韩三级视频在线观看| 99免在线观看免费视频高清| 97久久精品视频| 福利一区三区| 日韩亚洲欧美精品| 国产一区二区精品| av影片在线播放| 国产精品成人一区二区三区夜夜夜| www.av麻豆| 日韩精品一区二区三区蜜臀| 91精品国产91久久久久游泳池 | 白白操在线视频| 麻豆国产精品一区二区三区| 偷拍女澡堂一区二区三区| 亚洲一区二区三区不卡国产欧美| 一区二区三区日| 中文国产成人精品久久一| 成年美女黄网站色大片不卡| 国产精品99久久久久久久| 综合一区av| www.五月天色| 国产日韩成人精品| 国产熟妇一区二区三区四区| 亚洲国产精品成人av| 日韩av毛片| 亚洲一区免费网站| 99精品美女| 亚洲免费黄色网| 中文字幕不卡一区| 中文字幕手机在线视频| 亚洲女人天堂色在线7777| 亚洲欧美se| 精品久久蜜桃| 亚洲精选在线| 人妻无码一区二区三区| 精品久久久久久中文字幕一区奶水| 蜜桃91麻豆精品一二三区| 欧美激情中文字幕在线| 国产一级成人av| 国产精品999视频| 9色porny自拍视频一区二区| 日韩精品视频免费播放| 亚洲福利在线视频| а√在线中文网新版地址在线| 国产精品成人观看视频免费| 黄色另类av| 在线免费观看a级片| 欧美日韩中文字幕综合视频| 亚洲色图21p| 日韩美女视频免费看| 欧美日韩国产在线观看网站| www.日本一区| 综合分类小说区另类春色亚洲小说欧美 | 欧美视频裸体精品| 国产资源在线观看| 国产精品免费视频xxxx| 国产精品99久久久久久动医院| 天天操精品视频| 亚洲二区在线视频| 无码国产精品一区二区免费16| 欧洲精品久久久| 久久一本综合| 免费国偷自产拍精品视频| 午夜精品久久一牛影视| 欧美套图亚洲一区| 国产日韩在线精品av| 午夜精品久久久久99热蜜桃导演 | 亚洲春色h网| 色www免费视频| 亚洲一区二区中文在线| 三级黄视频在线观看| 国产精品日韩av| 欧美日韩亚洲三区| 国产精品一二三区在线观看| 欧美日韩在线电影| 日韩免费影院| 欧美亚洲爱爱另类综合| 久久99精品久久久久婷婷| 妺妺窝人体色www婷婷| 亚洲老头同性xxxxx| 外国成人毛片| 日韩精品―中文字幕| 国产精品丝袜黑色高跟| 亚洲精品97久久中文字幕| 国产成人精品午夜| 欧美一区综合| 老牛影视av老牛影视av| 欧美一级日韩免费不卡| 在线观看爽视频| 中文字幕在线中文| 久久精品一区二区| www夜片内射视频日韩精品成人| 国产精品成人免费电影| 欧美日韩国产欧| 国产第一页精品| 精品视频在线播放免| 欧州一区二区三区|