黄a在线观看-黄a在线-黄a大片-黄色片在线看-黄色毛片免费-黄色大片网站

您的位置:首頁技術文章
文章詳情頁

VUE+Canvas 實現桌面彈球消磚塊小游戲的示例代碼

瀏覽:9日期:2022-09-30 16:59:19

大家都玩過彈球消磚塊游戲,左右鍵控制最底端的一個小木板平移,接住掉落的小球,將球彈起后消除畫面上方的一堆磚塊。

那么用VUE+Canvas如何來實現呢?實現思路很簡單,首先來拆分一下要畫在畫布上的內容:

(1)用鍵盤左右按鍵控制平移的木板;

(2)在畫布內四處彈跳的小球;

(3)固定在畫面上方,并且被球碰撞后就消失的一堆磚塊。

將上述三種對象,用requestAnimationFrame()函數平移運動起來,再結合各種碰撞檢查,就可以得到最終的結果。

先看看最終的效果:

VUE+Canvas 實現桌面彈球消磚塊小游戲的示例代碼

一、左右平移的木板

最底部的木板是最簡單的一部分,因為木板的y坐標是固定的,我們設置木板的初始參數,包括其寬度,高度,平移速度等,然后實現畫木板的函數:

pannel: {x: 0,y: 0,height: 8,width: 100,speed: 8,dx: 0}, .... drawPannel() { this.drawRoundRect(this.pannel.x,this.pannel.y,this.pannel.width,this.pannel.height,5 );},drawRoundRect(x, y, width, height, radius) { // 畫圓角矩形 this.ctx.beginPath(); this.ctx.arc(x + radius, y + radius, radius, Math.PI, (Math.PI * 3) / 2); this.ctx.lineTo(width - radius + x, y); this.ctx.arc(width - radius + x,radius + y,radius,(Math.PI * 3) / 2,Math.PI * 2 ); this.ctx.lineTo(width + x, height + y - radius); this.ctx.arc(width - radius + x,height - radius + y,radius,0,(Math.PI * 1) / 2 ); this.ctx.lineTo(radius + x, height + y); this.ctx.arc(radius + x,height - radius + y,radius,(Math.PI * 1) / 2,Math.PI ); this.ctx.fillStyle = '#008b8b'; this.ctx.fill(); this.ctx.closePath();}

程序初始化的時候,監聽鍵盤的左右方向鍵,來移動木板,通過長度判斷是否移動到了左右邊界使其不能繼續移出畫面:

document.onkeydown = function(e) { let key = window.event.keyCode; if (key === 37) {// 左鍵_this.pannel.dx = -_this.pannel.speed; } else if (key === 39) {// 右鍵_this.pannel.dx = _this.pannel.speed; }};document.onkeyup = function(e) { _this.pannel.dx = 0;};.... movePannel() { this.pannel.x += this.pannel.dx; if (this.pannel.x > this.clientWidth - this.pannel.width) {this.pannel.x = this.clientWidth - this.pannel.width; } else if (this.pannel.x < 0) {this.pannel.x = 0; }},二、彈跳的小球和碰撞檢測

小球的運動和木板類似,只是不僅有dx的偏移,還有dy的偏移。

而且還要有碰撞檢測:

(1)當碰撞的是上、右、左墻壁以及木板上的時候則反彈;

(2)當碰撞到是木板以外的下邊界的時候,則輸掉游戲;

(3)當碰撞的是磚塊的時候,被碰的磚塊消失,分數+1,小球反彈。

于是和木板一樣,將小球部分分為畫小球函數drawBall()和小球運動函數moveBall():

drawBall() { this.ctx.beginPath(); this.ctx.arc(this.ball.x, this.ball.y, this.ball.r, 0, 2 * Math.PI); this.ctx.fillStyle = '#008b8b'; this.ctx.fill(); this.ctx.closePath();},moveBall() { this.ball.x += this.ball.dx; this.ball.y += this.ball.dy; this.breaksHandle(); this.edgeHandle();},breaksHandle() { // 觸碰磚塊檢測 this.breaks.forEach(item => {if (item.show) { if ( this.ball.x + this.ball.r > item.x && this.ball.x - this.ball.r < item.x + this.breaksConfig.width && this.ball.y + this.ball.r > item.y && this.ball.y - this.ball.r < item.y + this.breaksConfig.height ) { item.show = false; this.ball.dy *= -1; this.score ++ ; if(this.showBreaksCount === 0){ this.gameOver = true; } }} });},edgeHandle() { // 邊緣檢測 // 碰到頂部反彈 if (this.ball.y - this.ball.r < 0) {this.ball.dy = -this.ball.dy; } if (// 碰到左右墻壁this.ball.x - this.ball.r < 0 ||this.ball.x + this.ball.r > this.clientWidth ) {this.ball.dx = -this.ball.dx; } if (this.ball.x >= this.pannel.x &&this.ball.x <= this.pannel.x + this.pannel.width &&this.ball.y + this.ball.r >= this.clientHeight - this.pannel.height ) {// 球的x在板子范圍內并觸碰到了板子this.ball.dy *= -1; } else if ((this.ball.x < this.pannel.x || this.ball.x > this.pannel.x + this.pannel.width) &&this.ball.y + this.ball.r >= this.clientHeight ) {// 球碰到了底邊緣了this.gameOver = true;this.getCurshBreaks(); }}三、磚塊的生成

磚塊的生成也比較簡單,這里我們初始了一些數據:

breaksConfig: {row: 6, // 排數height: 25, // 磚塊高度width: 130, // 磚塊寬度radius: 5, // 矩形圓角space: 0, // 間距colunm: 6 // 列數}

根據這些配置項以及畫布寬度,我們可以計算出每個磚塊的橫向間隙是多少:

// 計算得出磚塊縫隙寬度 this.breaksConfig.space = Math.floor((this.clientWidth - this.breaksConfig.width * this.breaksConfig.colunm) / (this.breaksConfig.colunm + 1) );

于是我們可以得到每個磚塊在畫布中的x,y坐標(指的磚塊左上角的坐標)

for (let i = 0; i < _this.breaksConfig.row; i++) {for (let j = 0; j < _this.breaksConfig.colunm; j++) { _this.breaks.push({ x: this.breaksConfig.space * (j + 1) + this.breaksConfig.width * j, y: 10 * (i + 1) + this.breaksConfig.height * i, show: true });} }

再加上繪制磚塊的函數:

drawBreaks() { let _this = this; _this.breaks.forEach(item => {if (item.show) { _this.drawRoundRect( item.x, item.y, _this.breaksConfig.width, _this.breaksConfig.height, _this.breaksConfig.radius );} });}四、讓上面三個部分動起來

(function animloop() { if (!_this.gameOver) {_this.movePannel();_this.moveBall();_this.drawAll(); } else {_this.drawCrushBreaks(); } window.requestAnimationFrame(animloop);})();.... drawAll() { this.ctx.clearRect(0, 0, this.clientWidth, this.clientHeight); this.drawPannel(); this.drawBall(); this.drawScore(); this.drawBreaks();}五、游戲結束后的效果

在最開始的動圖里可以看到,游戲結束后,磚塊粉碎成了若干的小球掉落,這個其實和畫單獨的小球類似,思路就是把剩余的磚塊中心坐標處生產若干大小不等,運動軌跡不等,顏色不等的小球,然后繼續動畫。

getCurshBreaks() { let _this = this; this.breaks.forEach(item => {if (item.show) { item.show = false; for (let i = 0; i < 8; i++) { // 每個磚塊粉碎為8個小球 this.crushBalls.push({ x: item.x + this.breaksConfig.width / 2, y: item.y + this.breaksConfig.height / 2, dx: _this.getRandomArbitrary(-6, 6), dy: _this.getRandomArbitrary(-6, 6), r: _this.getRandomArbitrary(1, 4), color: _this.getRandomColor() }); }} });},drawCrushBreaks() { this.ctx.clearRect(0, 0, this.clientWidth, this.clientHeight); this.crushBalls.forEach(item => {this.ctx.beginPath();this.ctx.arc(item.x, item.y, item.r, 0, 2 * Math.PI);this.ctx.fillStyle = item.color;this.ctx.fill();this.ctx.closePath();item.x += item.dx;item.y += item.dy;if ( // 碰到左右墻壁 item.x - item.r < 0 || item.x + item.r > this.clientWidth) { item.dx = -item.dx;}if ( // 碰到上下墻壁 item.y - item.r < 0 || item.y + item.r > this.clientHeight) { item.dy = -item.dy;} });},

以上就是桌面彈球消磚塊小游戲的實現思路和部分代碼,實現起來很簡單,兩三百行代碼就可以實現這個小游戲。在小球的運動上可以進行持續優化,并且也可以增加難度選項操作。

最后附上全部的vue文件代碼,供大家參考學習:

<template> <div class='break-ball'> <canvas height='600'></canvas> <div v-if='gameOver'> <div class='dialog'><p class='once-again'>本輪分數:{{score}}分</p><p class='once-again'>真好玩!</p><p class='once-again'>再來一次~~</p><el-button @click='init'>開始</el-button> </div> </div> </div></template> <script>const randomColor = [ '#FF95CA', '#00E3E3', '#00E3E3', '#6F00D2', '#6F00D2', '#C2C287', '#ECFFFF', '#FFDC35', '#93FF93', '#d0d0d0'];export default { name: 'BreakBall', data() { return { clientWidth: 0, clientHeight: 0, ctx: null, crushBalls: [], pannel: {x: 0,y: 0,height: 8,width: 100,speed: 8,dx: 0 }, ball: {x: 0,y: 0,r: 8,dx: -4,dy: -4 }, score: 0, gameOver: false, breaks: [], breaksConfig: {row: 6, // 排數height: 25, // 磚塊高度width: 130, // 磚塊寬度radius: 5, // 矩形圓角space: 0, // 間距colunm: 6 // 列數 } }; }, mounted() { let _this = this; let container = document.getElementById('breakBall'); this.ctx = container.getContext('2d'); this.clientHeight = container.height; this.clientWidth = container.width; _this.init(); document.onkeydown = function(e) { let key = window.event.keyCode; if (key === 37) {// 左鍵_this.pannel.dx = -_this.pannel.speed; } else if (key === 39) {// 右鍵_this.pannel.dx = _this.pannel.speed; } }; document.onkeyup = function(e) { _this.pannel.dx = 0; }; (function animloop() { if (!_this.gameOver) {_this.movePannel();_this.moveBall();_this.drawAll(); } else {_this.drawCrushBreaks(); } window.requestAnimationFrame(animloop); })(); }, computed:{ showBreaksCount(){ return this.breaks.filter(item=>{return item.show; }).length; } }, methods: { init() { let _this = this; _this.gameOver = false; this.pannel.y = this.clientHeight - this.pannel.height; this.pannel.x = this.clientWidth / 2 - this.pannel.width / 2; this.ball.y = this.clientHeight / 2; this.ball.x = this.clientWidth / 2; this.score = 0; this.ball.dx = [-1,1][Math.floor(Math.random() * 2)]*4; this.ball.dy = [-1,1][Math.floor(Math.random() * 2)]*4; this.crushBalls = []; this.breaks = []; // 計算得出磚塊縫隙寬度 this.breaksConfig.space = Math.floor((this.clientWidth - this.breaksConfig.width * this.breaksConfig.colunm) / (this.breaksConfig.colunm + 1) ); for (let i = 0; i < _this.breaksConfig.row; i++) {for (let j = 0; j < _this.breaksConfig.colunm; j++) { _this.breaks.push({ x: this.breaksConfig.space * (j + 1) + this.breaksConfig.width * j, y: 10 * (i + 1) + this.breaksConfig.height * i, show: true });} } }, drawAll() { this.ctx.clearRect(0, 0, this.clientWidth, this.clientHeight); this.drawPannel(); this.drawBall(); this.drawScore(); this.drawBreaks(); }, movePannel() { this.pannel.x += this.pannel.dx; if (this.pannel.x > this.clientWidth - this.pannel.width) {this.pannel.x = this.clientWidth - this.pannel.width; } else if (this.pannel.x < 0) {this.pannel.x = 0; } }, moveBall() { this.ball.x += this.ball.dx; this.ball.y += this.ball.dy; this.breaksHandle(); this.edgeHandle(); }, breaksHandle() { // 觸碰磚塊檢測 this.breaks.forEach(item => {if (item.show) { if ( this.ball.x + this.ball.r > item.x && this.ball.x - this.ball.r < item.x + this.breaksConfig.width && this.ball.y + this.ball.r > item.y && this.ball.y - this.ball.r < item.y + this.breaksConfig.height ) { item.show = false; this.ball.dy *= -1; this.score ++ ; if(this.showBreaksCount === 0){ this.gameOver = true; } }} }); }, edgeHandle() { // 邊緣檢測 // 碰到頂部反彈 if (this.ball.y - this.ball.r < 0) {this.ball.dy = -this.ball.dy; } if (// 碰到左右墻壁this.ball.x - this.ball.r < 0 ||this.ball.x + this.ball.r > this.clientWidth ) {this.ball.dx = -this.ball.dx; } if (this.ball.x >= this.pannel.x &&this.ball.x <= this.pannel.x + this.pannel.width &&this.ball.y + this.ball.r >= this.clientHeight - this.pannel.height ) {// 球的x在板子范圍內并觸碰到了板子this.ball.dy *= -1; } else if ((this.ball.x < this.pannel.x || this.ball.x > this.pannel.x + this.pannel.width) &&this.ball.y + this.ball.r >= this.clientHeight ) {// 球碰到了底邊緣了this.gameOver = true;this.getCurshBreaks(); } }, drawScore(){ this.ctx.beginPath(); this.ctx.font='14px Arial'; this.ctx.fillStyle = '#FFF'; this.ctx.fillText('分數:'+this.score,10,this.clientHeight-14); this.ctx.closePath(); }, drawCrushBreaks() { this.ctx.clearRect(0, 0, this.clientWidth, this.clientHeight); this.crushBalls.forEach(item => {this.ctx.beginPath();this.ctx.arc(item.x, item.y, item.r, 0, 2 * Math.PI);this.ctx.fillStyle = item.color;this.ctx.fill();this.ctx.closePath();item.x += item.dx;item.y += item.dy;if ( // 碰到左右墻壁 item.x - item.r < 0 || item.x + item.r > this.clientWidth) { item.dx = -item.dx;}if ( // 碰到上下墻壁 item.y - item.r < 0 || item.y + item.r > this.clientHeight) { item.dy = -item.dy;} }); }, getRandomColor() { return randomColor[Math.floor(Math.random() * randomColor.length)]; }, getRandomArbitrary(min, max) { return Math.random() * (max - min) + min; }, getCurshBreaks() { let _this = this; this.breaks.forEach(item => {if (item.show) { item.show = false; for (let i = 0; i < 8; i++) { this.crushBalls.push({ x: item.x + this.breaksConfig.width / 2, y: item.y + this.breaksConfig.height / 2, dx: _this.getRandomArbitrary(-6, 6), dy: _this.getRandomArbitrary(-6, 6), r: _this.getRandomArbitrary(1, 4), color: _this.getRandomColor() }); }} }); }, drawBall() { this.ctx.beginPath(); this.ctx.arc(this.ball.x, this.ball.y, this.ball.r, 0, 2 * Math.PI); this.ctx.fillStyle = '#008b8b'; this.ctx.fill(); this.ctx.closePath(); }, drawPannel() { this.drawRoundRect(this.pannel.x,this.pannel.y,this.pannel.width,this.pannel.height,5 ); }, drawRoundRect(x, y, width, height, radius) { this.ctx.beginPath(); this.ctx.arc(x + radius, y + radius, radius, Math.PI, (Math.PI * 3) / 2); this.ctx.lineTo(width - radius + x, y); this.ctx.arc(width - radius + x,radius + y,radius,(Math.PI * 3) / 2,Math.PI * 2 ); this.ctx.lineTo(width + x, height + y - radius); this.ctx.arc(width - radius + x,height - radius + y,radius,0,(Math.PI * 1) / 2 ); this.ctx.lineTo(radius + x, height + y); this.ctx.arc(radius + x,height - radius + y,radius,(Math.PI * 1) / 2,Math.PI ); this.ctx.fillStyle = '#008b8b'; this.ctx.fill(); this.ctx.closePath(); }, drawBreaks() { let _this = this; _this.breaks.forEach(item => {if (item.show) { _this.drawRoundRect( item.x, item.y, _this.breaksConfig.width, _this.breaksConfig.height, _this.breaksConfig.radius );} }); } }};</script> <!-- Add 'scoped' attribute to limit CSS to this component only --><style scoped lang='scss'>.break-ball { width: 900px; height: 600px; position: relative; #breakBall { background: #2a4546; } .container { position: absolute; top: 0; right: 0; bottom: 0; left: 0; background-color: rgba(0, 0, 0, 0.3); text-align: center; font-size: 0; white-space: nowrap; overflow: auto; } .container:after { content: ''; display: inline-block; height: 100%; vertical-align: middle; } .dialog { width: 400px; height: 300px; background: rgba(255, 255, 255, 0.5); box-shadow: 3px 3px 6px 3px rgba(0, 0, 0, 0.3); display: inline-block; vertical-align: middle; text-align: left; font-size: 28px; color: #fff; font-weight: 600; border-radius: 10px; white-space: normal; text-align: center; .once-again-btn { background: #1f9a9a; border: none; color: #fff; } }}</style>

到此這篇關于VUE+Canvas 實現桌面彈球消磚塊小游戲的文章就介紹到這了,更多相關vue彈球消磚塊小游戲內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Vue
相關文章:
主站蜘蛛池模板: 亚洲成人精品一区二区三区 | 野外做受又硬又粗又大视频√ | 亚洲成人精选 | 亚洲熟妇无码av在线播放 | 国内精品视频一区二区三区 | 亚洲 另类 春色 国产 | 亚洲视屏在线 | 久久天天综合桃花久久 | 中文字幕人妻第一区 | 午夜免费啪视频 | av成人亚洲| 久久亚洲美女精品国产精品 | 久久偷窥视频 | 亚洲第一中文字幕 | 国产精品久久久久国产a级 国产精品久久久久国产三级传媒 | 久久99国产精品久久99果冻传媒新版本 | 蜜桃视频插满18在线观看 | 91日本在线播放 | 欧美激情性生活 | 美女的mm视频网站软件 | 黄视频免费在线观看 | 干丰满少妇| 午夜激情av| 四川少妇av | 新婚夫妇白天啪啪自拍 | 亚洲色图综合网 | 亚洲色欲色欲www在线观看 | 成人乱码一区二区三区av | 凹凸日日摸日日碰夜夜爽孕妇 | 区二区三区玖玖玖 | 国产又粗又猛又爽又黄的视频一 | 99国产精品99久久久久久娜娜 | 精品久久久久久一区二区里番 | 91tv亚洲精品香蕉国产一区 | 成人免费ā片在线观看 | gv手机在线观看 | av日韩在线免费 | 欧洲老妇做爰xxxⅹ性视频 | 97超碰人 | av福利在线观看 | 49vv看片免费 | 国产欧美一区二区三区网站 | 少妇在线观看888视频 | 97欧美| 张津瑜警花国产精品一区 | 国产欧美一区二区三区四区 | 免费观看一区二区 | 欧美日韩三区 | 深夜视频在线 | 成人在线免费播放 | 大战熟女丰满人妻av | 国内福利视频 | 久久免费在线视频 | 亚洲精品视频网址 | 外国黄色毛片 | 国产精品久久久久久久久久久不卡 | 一本一本久久a久久精品牛牛影视 | 爱豆国产剧免费观看大全剧集 | 伊人情人色综合网站 | 欧美一道本 | 欧美精品免费观看二区 | 91操操| 欧美无乱码久久久免费午夜一区 | 亚洲精品无码久久久久久久 | 操小妞| 国产午夜精品一区二区理论影院 | 综合第一页 | 国内精品少妇 | 久久精品99久久久久久2456 | 国产精品99久久久久人中文网介绍 | 四虎黄色网| 国产丝袜美女 | 国产首页 | 无码性按摩 | 在线观看波多野结衣 | 色播导航 | 男女羞羞羞视频午夜视频 | 欧美成人久久久免费播放 | 国产精品sm调教免费专区 | 三级网站在线播放 | 桃色成人 | 久久精品一区二区三区不卡牛牛 | 翔田千里高潮在线播放 | 国产福利91精品一区二区三区 | 996热re视频精品视频这里 | 色视频网 | 久久综合国产伦精品免费 | 91嫩草国产线观看亚洲一区二区 | 久久综合伊人 | 人人妻人人玩人人澡人人爽 | 成人黄色在线 | 日产高清b站成品片a | aaaaa黄色片 aaaaa级毛片 | 亚洲中文字幕第一页在线 | 三级毛片在线免费观看 | 中国少妇xxxx做受自拍 | av中文字幕一区 | 香蕉视频免费 | 用舌头去添高潮无码视频 | 国产成人无码区免费内射一片色欲 | 精品女同一区二区 | 69婷婷国产精品入口 | 91精品国产亚一区二区三区老牛 | www亚洲色图com | 国产原创一区二区 | 国产性色强伦免费视频 | 国产成人精品亚洲男人的天堂 | 国产婷婷成人久久av免费高清 | 波多野吉衣中文字幕 | 亚洲欧洲美洲无码精品va | 欧亚乱熟女一区二区在线 | 特黄特色大片免费播放器图片 | 国产又大又黑又粗 | 国产精品成人自拍 | 国产亚洲精品美女久久久久 | 在线观看麻豆av | 天堂中文在线观看视频 | 98堂 最新网名 | 国产精品186在线观看在线播放 | 国产性xxxxx| 国产热の有码热の无码视频 | 精品国产乱码久久久久久影片 | 亚洲国产欧美日韩在线 | av网站大全在线观看 | 69天堂网| 欧洲色区 | 久久中文字幕高清 | 国产经典三级 | 老司机在线精品视频网站的优点 | 国产线播放免费人成视频播放 | 日日夜夜草 | 日本三级做a全过程在线观看 | 又粗又大内射免费视频小说 | 日韩视频二区 | 人妻av无码一区二区三区 | 99精品无码一区二区 | 亚洲乱码av中文一区二区 | 亚洲精品成人天堂一二三 | 人妻熟人中文字幕一区二区 | 尤物精品在线观看 | 黄色片网站在线看 | 成人免费黄色小视频 | 亚洲少妇色 | 57pao国产一区二区 | 亚洲天天 | 国内精品91少妇在线播放 | 美女高潮视频在线观看 | 肉色超薄丝袜脚交69xx | 精品一区二区三区四区外站 | 免费中文字幕 | 六月丁香在线视频 | 中文一二三区 | 国产成人精品在线播放 | 九色porny丨首页入口在线 | 男人j进入女人j内部免费网站 | 国产亚洲精品美女久久久 | 免费国产在线观看 | 四虎成人精品无码永久在线 | 亚洲色图二区 | 日日嗨av一区二区三区四区 | 成人性免费视频 | 国产毛片毛片毛片 | 婷婷伊人久久 | 在线观看av毛片 | 欧美精品久久一区二区 | 88tv成人| 性国产三级在线观看 | 五月天激情丁香 | 日韩在线播放中文字幕 | 无码内射成人免费喷射 | 欧美日韩国语 | 国产午夜三级一区二区三桃花影视 | 国产在线观看www | 性猛交xxxx免费看蜜桃 | 7777av| 国产成人无码av一区二区 | 538在线精品 | 日韩视频成人 | 国产乱码精品一区二区三区四川人 | 亚洲精品一二三区久久伦理中文 | 欧美色婷婷 | 婷婷精品国产欧美精品亚洲人人爽 | 日本乱码视频 | 国产无遮挡又黄又爽在线视频 | 日韩av专区片 | 青青操视频在线 | 无码一区二区三区亚洲人妻 | 激情综合区 | 免费人成在线观看视频播放 | 四虎精品永久在线 | a色网站| 亚洲精品黄 | 成年人网站黄色 | 欧美揉bbbbb揉bbbbb | 人人妻人人澡人人爽欧美一区 | 欧美肥妇毛多水多bbxx | 国产伦精品一区二区三区视频免费 | 777国产盗摄视频000 | 国产麻豆免费视频 | 国产黄色影院 | 美日韩精品 | 国产精品爽爽久久久久久蜜臀 | 日本精品啪啪一区二区三区 | 绿帽刺激高潮对白 | 91久久夜色精品国产网站 | 成人欧美一区二区 | 日韩在线不卡免费视频一区 | 国产精品嫩草影院久久久 | 欧美精品一二三四区 | 久久婷婷国产色一区二区三区 | 永久免费看成品人影视 | japanese一本色道久久 | 一本大道综合伊人精品热热 | 国产特级av| 欧美专区在线 | 老女人毛片 | 国产精品婷婷久久久久久 | 成人品视频观看在线 | 亚洲成人在线视频播放 | 婷婷天天 | 91无人区乱码卡一卡二卡 | 三级免费网站 | 久久在线播放 | 狠狠的色 | 中文字幕1区2区 | 午夜激情视频免费观看 | 又色又爽又高潮免费视频观看 | 日韩欧美精品国产 | 7777欧美日激情日韩精品 | 国产精品不卡在线观看 | 国产又粗又猛又爽又黄的网站 | 国产在线精品一区二区三区直播 | 亚洲精品国产精品国自产网站按摩 | 久久精品一 | 美女扣逼喷水视频 | yw在线观看| 超碰在线免费公开 | 91av一区| 这里只有精品国产 | 18国产免费视频 | 裸体丰满少妇xxxxxxxx | 国产精品入口免费视 | 精品人伦一区二区三区蜜桃视频 | 久久国产精品精品 | 久久久久久久久久久动漫 | 少妇一区二区视频 | www97色| 久久久性色精品国产免费观看 | 亚洲一区二区三区丝袜 | 永久免费未满男 | 激情久久五月天 | 性久久久久久久久波多野结衣 | 久久久久www | 日本内谢少妇xxxxx少交 | 午夜无码人妻av大片色欲 | 欧美大片一区 | 国产一级视频免费看 | 亚洲蜜臀av| 国产一级片自拍 | 超h高h污肉校园np在线观看 | 精品少妇v888av | 成人免费播放 | 国产精品麻豆色哟哟av | 国产精品 欧美日韩 | 亚洲自偷自偷在线制服 | 欧美牲交a欧美牲交aⅴ免费真 | 中文字幕乱码在线观看 | 国产ts变态重口人妖hd | 久久久精品麻豆 | 偷看农村妇女牲交 | 亚洲日韩aⅴ在线视频 | 97网站| 国产热a欧美热a在线视频 | 亚洲精品无线乱码一区 | 日韩精品内射视频免费观看 | 国产ts在线播放 | 丝袜 亚洲 另类 欧美 重口 | 日韩影院在线 | 97精品国产97久久久久久免费 | 国产一级一级一级 | 国产中文字幕在线视频 | 国产99页| 国产乱人伦精品 | 强伦人妻一区二区三区视频18 | 性较小国产交xxxxx视频 | 国产馆在线观看 | 无码人妻精品丰满熟妇区 | 久久嗨 | 伊人狠狠色丁香婷婷综合 | 精品一区二区三区在线成人 | 日韩二区三区 | 欧美肉欲k8播放毛片欧美 | 52avavjizz亚洲精品 | 7777少妇色视频免费播放 | 四虎影视亚洲精品一区二区 | 丰满人妻妇伦又伦精品国产 | 国产亚洲性欧美日韩在线观看软件 | 国产露脸精品国产沙发 | 国产精品毛片一区二区在线看 | 日本va在线视频播放 | 特级a做爰全过程片 | 97夜夜澡人人爽人人喊中国片 | 少妇下蹲露大唇无遮挡 | 亚州av免费| 91成人看片免费版 | 精品无码国产一区二区三区51安 | 精品亚洲韩国一区二区三区 | 欧美另类肥妇 | 欧美一级黄色录像 | 国产免码va在线观看免费 | 国产禁女女网站免费看 | 人妻少妇精品久久 | 一区二区国产盗摄色噜噜 | 国产系列在线 | 尤物在线视频观看 | 四虎国产精品永久在线 | 国产日比视频 | 亚洲在线精品 | 精品久久久久久亚洲综合网 | 欧美人妖一区 | 海量av| 久久精品国产99精品国产亚洲性色 | 国产aⅴxxx片 | www欧美色| 91狠狠干 | 日韩一二三四 | 51久久国产露脸精品国产 | 国产一级免费片 | 欧美成人影音 | 日本福利片在线观看 | 在线观看h网站 | 欧美亚洲激情视频 | 国产主播中文字幕 | 国产日韩欧美在线观看视频 | 欧美性tv | 亚洲成a人 | 国产成人无码精品亚洲 | 中文乱码人妻系列一区二区 | 国产乱子经典视频在线观看 | 文中字幕一区二区三区视频播放 | 香蕉视频链接 | 嫩草在线播放 | 三级全黄做爰视频在线手机观看 | 在线观看视频毛片 | 亚洲欧美xxx | 99免费精品 | 色一情一乱一伦一区二区三区日本 | 伊人av超碰久久久麻豆 | 精品国产乱码久久久久久牛牛 | 丁香花在线影院观看在线播放 | 国产精品久久国产精品99 | 亚洲毛片大全 | 色综合欧美在线视频区 | 九色91porny | 片毛片 | 国产精品久久久久久久久久久久人四虎 | 国产在线视频自拍 | 欧美日韩国产黄色 | 日韩一区二区三区免费视频 | 十八禁视频网站在线观看 | 无码人妻精品一区二区三18禁 | 老色鬼在线精品视频 | 日韩成人久久 | 久久视频中文字幕 | 成人h动漫精品一区二区无码 | 香蕉视频入口 | 欧美日韩一二三区 | 亚洲狠狠丁香婷婷综合久久久 | 国产激情久久久久影院老熟女 | 成人一级生活片 | 国产系列在线观看 | 国产青青青 | 天天操婷婷 | 国产精品久久天堂噜噜噜 | 欧美精品第一页 | 国产日韩亚洲 | 老少交欧美另类 | 日韩a片无码毛片免费看 | 欧美精品久久天天躁 | 日本精品久久久久久草草 | 精品国产99久久久久久宅男i | 国产传媒毛片精品视频第一次 | 五月婷婷激情在线 | 日日夜夜超碰 | 高清一级片 | 国产精品有码无码av在线播放 | 国产成人无码精品久久久性色 | 欧美日韩久久久久久 | 国产真人毛片 | 国产伦精品一区二区三区四区免费 | 成人性生交大片 | 美女18禁一区二区三区视频 | 亚洲mv高清砖码区2022伊甸园 | 久久精品夜夜夜夜夜久久 | 色五月天天 | 日本成人在线视频网站 | 亚洲最大在线视频 | 一个人看的视频在线观看www | 999久久欧美人妻一区二区 | 老熟女高潮一区二区三区 | 成人亚洲网 | 韩国三级hd中文字幕叫床 | 中国大陆一级毛片 | 欧美美女视频 | 天堂аⅴ在线地址8 | 成年女人黄网站色视频免费97 | 免费国产在线精品一区二区三区 | 黄瓜视频成人 | 深夜av福利| 正在播放东北夫妻内射 | 国产又粗又猛又黄视频 | 日韩av免费在线播放 | 一本一道人人妻人人妻αv 自拍日韩亚洲一区在线 | baoyu131成人免费视频 | 亚洲污在线观看 | 色噜噜狠狠狠狠色综合久不 | 特级西西444www大精品视频 | 欧美久久免费观看 | 少妇熟女久久综合网色欲 | 日日夜夜精品视频免费 | 无码人妻精品一区二区 | 中文av一区二区 | 丰满少妇高潮叫久久国产 | 老头边吃奶边弄进去呻吟 | 人人澡 人人澡 人人看 | 日本欧美在线观看视频 | 成人性生交大片免费看96 | 日韩免费一区二区三区 | 久久网站视频 | 黄色大片在线 | 勾搭足浴女技师国产在线 | 日本曰又深又爽免费视频 | 热热av| 麻豆短视频在线观看 | 国产精品乱码久久久久久 | 精品熟女少妇av免费久久 | 欧美成人三级视频 | 五月开心激情网 | 亚洲午夜综合 | 欧美专区在线视频 | 黄色三级图片 | 男人边吃奶边揉好爽免费视频 | 亚洲高清在线观看 | 中文字幕在线观看亚洲日韩 | 色噜噜狠狠狠综合曰曰曰 | 自拍一区在线 | a天堂在线观看视频 | 亚洲国产最新 | 找个毛片看看 | 欧美日韩精品一区二区视频 | 毛片女人| 噼里啪啦免费观看 | 女人和野鲁性猛交大毛片 | 色眯眯视频 | 天干天干天啪啪夜爽爽av小说 | 天堂va欧美va亚洲va好看va | 片毛片| 女女互揉吃奶揉到高潮视频 | 奇米影视888狠狠狠 奇米影视第四狠狠777 | 人人干人人爱 | 人妻精品久久久久中文字幕69 | 亚洲一区二区在线免费 | 五月丁香色综合久久4438 | 久久亚洲视频 | 天天综合网在线 | 中文字幕dvd | 国产一级αⅴ片免费看 | 久久99精品久久久久久国产越南 | 黄色免费在线视频 | 国产卡一卡二卡三无线乱码新区 | 一区二区三区日韩视频在线观看 | 日本少妇xxx| 中文自拍| √最新版天堂资源网在线 | 怡红院最新网址 | 久久久影视文化传媒有限公司 | 大江大河第三部50集在线观看旭豪 | 99ri精品| 黑人性较视频免费视频 | 亚洲成年轻人电影网站www | 欧美日韩在线免费观看 | 久久综合给合久久狠狠狠97色 | 日本中文字幕在线观看 | 四虎在线观看视频 | 性一交一乱一透一a级 | 无码人妻久久一区二区三区不卡 | 久热超碰| 国产永久免费观看久久黄av片 | 亚洲国产另类精品 | 91久久久久久波多野高潮 | 亚洲成人黄色av | 人人干免费 | 在线看日韩 | 99激情视频| 韩国午夜理论在线观看 | 成人h猎奇视频网站 | 成人亚洲精品久久久久 | 操操操干干干 | 日本老太做爰xxxx | 亚洲成av人片不卡无码手机版 | 丁五月 | 99操| 999精品视频在线观看 | 一级特黄aa大片 | 日韩a∨精品日韩在线观看 日韩avav | 性做久久久久久免费观看 | sm调教美女警花少妇 | 亚洲黄色网址 | 少妇做爰免费视频网站www | 久久露脸视频 | 91免费高清 | 一女二男3p波多野结衣 | 国产成网站18禁止久久影院 | 深夜福利院 | 午夜剧场免费在线观看 | 国产精品天美传媒入口 | 手机在线免费观看av片 | 一本一道久久a久久综合蜜桃 | 亚洲理论电影在线观看 | 人妻被按摩师玩弄到潮喷 | 最近中文字幕2019在线一区 | 亚洲欧美综合一区 | 日韩a一级| 国产av国片精品有毛 | 欧日韩不卡在线视频 | 亚洲欧美乱综合图片区小说区 | 青青青草视频在线观看 | 小伙和少妇干柴烈火 | 日本少妇白嫩猛烈进入免费视频 | 国产综合久久久久 | www91成人| 日韩一级免费 | 国产露双乳喂奶在线观看 | 欧美午夜精品久久久久免费视 | 蜜桃视频日韩 | 67194成是人免费无码 | 小sao货水好多真紧h无码视频 | 69日本xxxxxxxx96| 影音先锋国产在线 | 国产九九九九九九九a片 | 成年人在线观看视频免费 | 国产色婷婷五月精品综合在线 | 色婷婷精品久久二区二区蜜臂av | 亚洲免费视频播放 | 又色又爽又黄18禁美女裸身无遮挡 | 日本一级二级视频 | 欧美极品第一页 | 久久综合se | 中文字幕第4页 | 亚洲国产日韩欧美一区二区三区 | 亚洲s色大片在线观看 | 亚洲欧美中文日韩v在线观看 | 免费黄av | 麻豆av影视 | 成人看的毛片 | 国产毛片毛片精品天天看软件 | 男人爱看的网站 | 插插插色综合 | 女人被做到高潮视频 | 亚洲自拍网站 | 粉嫩av一区二区三区在线播放 | 人与禽交av在线播放 | 天天干夜夜草 | 狠狠干夜夜骑 | 国产欧美日韩在线在线播放 | 小黄鸭精品aⅴ导航网站入口 | 国产又粗又猛又黄又爽性视频 | 欧美精品一区二区蜜臀亚洲 | 少妇2做爰交换朴银狐 | 桃色一区二区三区 | 国产极品久久久 | 欧美一区二区精品 | 日韩av手机在线观看 | 久久婷婷成人综合色 | 日本一区二区三区爆乳 | 天堂色播 | 韩国精品在线 | 人妻精品久久久久中文字幕 | 57pao成人国产永久免费视频 | 亚洲人午夜精品 | 人人妻人人澡人人爽欧美一区九九 | 日本精品一区二区在线观看 | 亚洲一区二区三区四区的 | 在线免费观看黄 | 国产精品爽爽久久久久久竹菊 | 欧美一区二区三区成人久久片 | 国产肉体ⅹxxx137大胆视频 | 黄色av网站在线 | 国产福利姬喷水福利在线观看 | 综合精品国产 | 国产一区二区三区四区在线观看 | 亚洲男人在线天堂 | 日韩成人一区二区三区在线观看 | 主播av在线 | 午夜国产在线 | 国产永久视频 | 色啊色 | 懂色av一区二区三区四区五区 | 国产成人61精品免费看片 | 国产精品国产三级国产aⅴ浪潮 | 精品国产一区二区三 | 欧美人妻精品一区二区三区 | 国产又黄又爽刺激片 | 免费黄色片子 | 午夜国产在线观看 | 老牛精品亚洲成av人片 | 91狠狠爱| 欧美瑟瑟| 国产在线精品一区二区 | 成人免费看视频 | 欧美日韩一区二区三区四区在线观看 | 国内精品久久久久久久影视 | 最近最新中文字幕 | 久久综合伊人中文字幕 | 国产福利一区视频 |