久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術(shù)文章
文章詳情頁

flappy bird游戲源代碼揭秘和下載 —— 可運(yùn)行于android、ios和html5多平臺

瀏覽:7日期:2022-09-17 14:49:00

背景:

最近火爆全球的游戲flappy bird讓筆者嘆為觀止,于是花了一天的時間山寨了一個一模一樣的游戲,現(xiàn)在把游戲的思路和源碼分享出來,代碼是基于javascript語言,cocos2d-x游戲引擎,cocos2d-x editor手游開發(fā)工具完成的,請讀者輕砸;

ps:運(yùn)行demo必須配置好cocos2d-x editor,暫不支持其他工具。還有demo是跨平臺的,可移植運(yùn)行android,ios,html5移動系統(tǒng)等;

Android Apk下載:(演示效果)

暫時只移植打包到android系統(tǒng),可下載運(yùn)行看看效果;

騰訊微云:http://share.weiyun.com/cac18d8c58d40bf2401b3fdeeb6bcb2f

代碼下載:

百度云盤:http://pan.baidu.com/s/1pJnWDb9

代碼如何移植到各平臺:

?Android:http://blog.csdn.net/touchsnow/article/details/19176091

html5: ? ? ??http://blog.makeapp.co/?p=245

效果圖:

flappy bird游戲源代碼揭秘和下載 —— 可運(yùn)行于android、ios和html5多平臺 flappy bird游戲源代碼揭秘和下載 —— 可運(yùn)行于android、ios和html5多平臺 flappy bird游戲源代碼揭秘和下載 —— 可運(yùn)行于android、ios和html5多平臺

開發(fā)工具:

cocos2dx editor,它是開發(fā)跨平臺的手機(jī)游戲工具,運(yùn)行window/mac系統(tǒng)上,javascript腳本語言,基于cocos2d-x跨平臺游戲引擎, 集合代碼編輯,場景設(shè)計(jì),動畫制作,字體設(shè)計(jì),還有粒子,物理系統(tǒng),地圖等等的,而且調(diào)試方便,和實(shí)時模擬;

cocos2dx editor 下載,介紹和教程:http://blog.csdn.net/touchsnow/article/details/19070665;

cocos2dx editor官方博客:http://blog.makeapp.co/;(請持續(xù)關(guān)注版本更新)

思路和源碼:

1 場景設(shè)計(jì)MainLayer.ccbx,如下圖;主要分三層,開始場景、主場景、游戲結(jié)束場景,通過顯示隱藏控制三個場景的切換。

flappy bird游戲源代碼揭秘和下載 —— 可運(yùn)行于android、ios和html5多平臺

MainLayer.ccbx代碼

<?xml version='1.0' encoding='UTF-8'?><Document jsControlled='true' jsController='MainLayer' resolution='default'> <Resolutions><Resolution centeredOrigin='false' ext='iphone' name='default' scale='1'/><Resolution centeredOrigin='false' ext='iphone' name='default1' scale='1'/> </Resolutions> <Animations><Animation autoPlay='true' name='Default Timeline'length='10'chainedId='0'offset='0.0'position='0.0'resolution='30'scale='128'> <CallbackChannel> </CallbackChannel> <SoundChannel> </SoundChannel></Animation> </Animations> <LayerpositionX='0' positionY='0.0'sizeType='Percent' anchorPointX='0.5' anchorPointY='0.5' ignoreAnchorPoint='true'scaleX='1' scaleY='1' ><Sprite positionType='LeftBottom' positionX='0' positionY='0' anchorPointX='0'anchorPointY='0' src='http://www.gepszalag.com/bcjs/Resources/bg.png' name='' var='' target='None' scaleX='1' scaleY='1' visible='true'/><LayerColor positionType='LeftBottom' positionX='0' positionY='0' anchorPointX='0'anchorPointY='0' color='#fff2e8ff' visible='false'/><Menu positionType='LeftBottom' positionX='356.0' positionY='237.0' anchorPointX='0.5'anchorPointY='0.5' scaleX='2.4' scaleY='1.725'></Menu><Sprite positionType='LeftBottom' positionX='0' positionY='0' anchorPointX='0'anchorPointY='0' src='http://www.gepszalag.com/bcjs/Resources/ground.png' var='ground' target='Doc'/><Node positionType='LeftBottom' positionX='800' positionY='250' anchorPointX='0'anchorPointY='0' var='hoseNode' target='Doc'> <Sprite positionType='LeftBottom' positionX='-500' positionY='400' anchorPointX='0.5'anchorPointY='0.5' src='http://www.gepszalag.com/bcjs/Resources/flappy_packer.plist/bird3.png' var='test' target='Doc' visible='false'/> <Sprite positionType='LeftBottom' positionX='-550' positionY='500' anchorPointX='0.5'anchorPointY='0.5' src='http://www.gepszalag.com/bcjs/Resources/flappy_packer.plist/bird1.png' var='bird' target='Doc' scaleX='1' scaleY='1' rotation='0' visible='true'/></Node><Node positionType='LeftBottom' positionX='303.0' positionY='500' anchorPointX='0.5'anchorPointY='0.5' var='readyNode' target='Doc' visible='true'> <Sprite positionType='LeftBottom' positionX='95.0' positionY='584.0' anchorPointX='0.5'anchorPointY='0.5' src='http://www.gepszalag.com/bcjs/Resources/flappy_packer.plist/getready.png'/> <Sprite positionType='LeftBottom' positionX='73.0' positionY='236.0' anchorPointX='0.5'anchorPointY='0.5' src='http://www.gepszalag.com/bcjs/Resources/flappy_packer.plist/click.png'/></Node><Node positionType='LeftBottom' positionX='300' positionY='500' anchorPointX='0.5'anchorPointY='0.5' var='overNode' target='Doc' visible='true'> <Sprite positionType='LeftBottom' positionX='72.0' positionY='219.0' anchorPointX='0.5'anchorPointY='0.5' src='http://www.gepszalag.com/bcjs/Resources/flappy_packer.plist/base.png'><Sprite positionType='LeftBottom' positionX='286.0' positionY='458.0' anchorPointX='0.5'anchorPointY='0.5' src='http://www.gepszalag.com/bcjs/Resources/flappy_packer.plist/gameover.png'/> </Sprite> <Menu positionType='LeftBottom' positionX='0' positionY='0' anchorPointX='0.5'anchorPointY='0.5'><MenuItem positionType='LeftBottom' positionX='-65.0' positionY='-92.0' anchorPointX='0.5'anchorPointY='0.5' normalImage='Resources/flappy_packer.plist/start.png' target='Doc' onClick='onStartClicked'/><MenuItem positionType='LeftBottom' positionX='230.0' positionY='-92.0' anchorPointX='0.5'anchorPointY='0.5' target='Doc' normalImage='Resources/flappy_packer.plist/grade.png' onClick='onGradeClicked'/> </Menu></Node> </Layer></Document>

2 代碼編寫MainLayer.js

首先,小鳥在向前飛,其實(shí)是底部的路和水管在向左移動,相對的你就感覺小鳥在向右飛了;路循環(huán)移動代碼:

MainLayer.prototype.groundRun = function (){ var action1 = cc.MoveTo.create(0.5, cc.p(-120, 0)); var action2 = cc.MoveTo.create(0, cc.p(0, 0)); var action = cc.Sequence.create(action1, action2); this.ground.runAction(cc.RepeatForever.create(action));}

初始化高低不同的水管,每一關(guān)卡都由上下兩水管和空隙組成。總長度相同,空隙也一定,隨機(jī)取下面水管的長度,就形成錯落有致的水管關(guān)卡;

MainLayer.prototype.newHose = function (num){ var hoseHeight = 830; var acrossHeight = 300; var downHeight = 100 + getRandom(400); var upHeight = 1100 - downHeight - acrossHeight; var hoseX = 400 * num; var HoseName = FP_MAIN_TEXTURE.HOSE; var ccSpriteDown = cc.Sprite.createWithSpriteFrameName(HoseName[0]); ccSpriteDown.setZOrder(1); ccSpriteDown.setAnchorPoint(cc.p(0, 0)); ccSpriteDown.setPosition(cc.p(hoseX, 0)); ccSpriteDown.setScaleY(downHeight / hoseHeight); var ccSpriteUp = cc.Sprite.createWithSpriteFrameName(HoseName[1]); ccSpriteUp.setZOrder(1); ccSpriteUp.setAnchorPoint(cc.p(0, 0)); ccSpriteUp.setPosition(cc.p(hoseX, downHeight + acrossHeight)); ccSpriteUp.setScaleY(upHeight / hoseHeight); this.hoseNode.addChild(ccSpriteDown); this.hoseNode.addChild(ccSpriteUp); this.hoseSpriteList.push(ccSpriteDown); this.hoseSpriteList.push(ccSpriteUp); return null;}

一開始進(jìn)入游戲讓底部路不斷移動,初始化水管,顯示準(zhǔn)備游戲場景;

MainLayer.prototype.onEnter = function (){ cc.AnimationCache.getInstance().addAnimations('Resources/flappy_frame.plist'); this.groundRun(); this.ground.setZOrder(10); this.birdReadyAction(); this.bird.setZOrder(20); this.readyNode.setVisible(true); this.overNode.setVisible(false); for (var i = 0; i < 30; i++) {this.newHose(i); }}

點(diǎn)擊屏幕,小鳥向上飛60dp,然后更快的速度下落(移動動畫),同時閃動翅膀(幀動畫);

MainLayer.prototype.birdRiseAction = function (){ var riseHeight = 60; var birdX = this.bird.getPositionX(); var birdY = this.bird.getPositionY(); var time = birdY / 600; var actionFrame = cc.Animate.create(cc.AnimationCache.getInstance().getAnimation('fly')); var flyAction = cc.Repeat.create(actionFrame, 90000); var riseAction1 = cc.MoveTo.create(0.2, cc.p(birdX, birdY + riseHeight)); var riseAction2 = cc.RotateTo.create(0, -30); var riseAction = cc.Spawn.create(riseAction1, riseAction2); var fallAction1 = cc.MoveTo.create(time, cc.p(birdX, 50)); var fallAction2 = cc.Sequence.create(cc.DelayTime.create(time / 6), cc.RotateTo.create(0, 30)); var fallAction = cc.Spawn.create(fallAction1, fallAction2); this.bird.stopAllActions(); this.bird.runAction(cc.Spawn.create(cc.Sequence.create(riseAction, cc.DelayTime.create(0.1), fallAction),flyAction) );}

檢測碰撞,如果小鳥碰到地面和水管,發(fā)生碰撞,這里碰撞直接用cocos2d-x 里面的圖片和圖片交叉函數(shù) cc.rectIntersectsRect;

MainLayer.prototype.checkCollision = function (){ if (this.bird.getPositionY() < 60) {cc.log('floor');this.birdFallAction();return; } for (var i = 0; i < this.hoseSpriteList.length; i++) {var hose = this.hoseSpriteList[i];if (!this.isInScreen(hose)) { // continue;}if (cc.rectIntersectsRect(hose.getBoundingBox(), this.bird.getBoundingBox())) { cc.log('hose positionX==' + hose.getBoundingBox().x); cc.log('this.bird positionX==' + this.bird.getBoundingBox().x); cc.log('i==' + i); cc.log('birdFallAction'); this.birdFallAction(); return; } }}

碰撞后,小鳥先下落,游戲結(jié)束場景顯示;

MainLayer.prototype.birdFallAction = function (){ this.gameMode = OVER; this.bird.stopAllActions(); this.ground.stopAllActions(); var birdX = this.bird.getPositionX(); var birdY = this.bird.getPositionY(); var time = birdY / 2000; this.bird.runAction(cc.Sequence.create(cc.DelayTime.create(0.1),cc.Spawn.create(cc.RotateTo.create(time, 90), cc.MoveTo.create(time, cc.p(birdX, 50)))) ); this.overNode.setVisible(true);}

游戲的難度主要在于多個水管的移動,小鳥觸摸動畫,檢測碰撞,我把Mainlayer.js所有代碼貼出來;

FP_MAIN_TEXTURE = { FRAME_ANIMS: 'beanstalk/Resources/bs_main_anims.plist', HOSE: ['holdback1.png', 'holdback2.png']}READY = 1;START = 2;OVER = 3;var MainLayer = function (){ cc.log('MainLayer'); this.bird = this.bird || {}; this.ground = this.ground || {}; this.hoseNode = this.hoseNode || {}; this.readyNode = this.readyNode || {}; this.overNode = this.overNode || {}; this.passTime = 0; this.hoseSpriteList = []; this.isStart = false; this.gameMode = READY;};MainLayer.prototype.onDidLoadFromCCB = function (){ if (sys.platform == ’browser’) {this.onEnter(); } else {this.rootNode.onEnter = function (){ this.controller.onEnter();}; } this.rootNode.schedule(function (dt){this.controller.onUpdate(dt); }); this.rootNode.onExit = function (){this.controller.onExit(); }; this.rootNode.onTouchesBegan = function (touches, event){this.controller.onTouchesBegan(touches, event);return true; }; this.rootNode.onTouchesMoved = function (touches, event){this.controller.onTouchesMoved(touches, event);return true; }; this.rootNode.onTouchesEnded = function (touches, event){this.controller.onTouchesEnded(touches, event);return true; }; this.rootNode.setTouchEnabled(true);};MainLayer.prototype.onEnter = function (){ cc.AnimationCache.getInstance().addAnimations('Resources/flappy_frame.plist'); this.groundRun(); this.ground.setZOrder(10); this.birdReadyAction(); this.bird.setZOrder(20); this.readyNode.setVisible(true); this.overNode.setVisible(false); for (var i = 0; i < 30; i++) {this.newHose(i); }}MainLayer.prototype.newHose = function (num){ var hoseHeight = 830; var acrossHeight = 300; var downHeight = 100 + getRandom(400); var upHeight = 1100 - downHeight - acrossHeight; var hoseX = 400 * num; var HoseName = FP_MAIN_TEXTURE.HOSE; var ccSpriteDown = cc.Sprite.createWithSpriteFrameName(HoseName[0]); ccSpriteDown.setZOrder(1); ccSpriteDown.setAnchorPoint(cc.p(0, 0)); ccSpriteDown.setPosition(cc.p(hoseX, 0)); ccSpriteDown.setScaleY(downHeight / hoseHeight); var ccSpriteUp = cc.Sprite.createWithSpriteFrameName(HoseName[1]); ccSpriteUp.setZOrder(1); ccSpriteUp.setAnchorPoint(cc.p(0, 0)); ccSpriteUp.setPosition(cc.p(hoseX, downHeight + acrossHeight)); ccSpriteUp.setScaleY(upHeight / hoseHeight); this.hoseNode.addChild(ccSpriteDown); this.hoseNode.addChild(ccSpriteUp); this.hoseSpriteList.push(ccSpriteDown); this.hoseSpriteList.push(ccSpriteUp); return null;}MainLayer.prototype.groundRun = function (){ var action1 = cc.MoveTo.create(0.5, cc.p(-120, 0)); var action2 = cc.MoveTo.create(0, cc.p(0, 0)); var action = cc.Sequence.create(action1, action2); this.ground.runAction(cc.RepeatForever.create(action));}MainLayer.prototype.birdReadyAction = function (){ var birdX = this.bird.getPositionX(); var birdY = this.bird.getPositionY(); var time = birdY / 2000; var actionFrame = cc.Animate.create(cc.AnimationCache.getInstance().getAnimation('fly')); var flyAction = cc.Repeat.create(actionFrame, 90000); this.bird.runAction(cc.Sequence.create(flyAction) );}MainLayer.prototype.birdFallAction = function (){ this.gameMode = OVER; this.bird.stopAllActions(); this.ground.stopAllActions(); var birdX = this.bird.getPositionX(); var birdY = this.bird.getPositionY(); var time = birdY / 2000; this.bird.runAction(cc.Sequence.create(cc.DelayTime.create(0.1),cc.Spawn.create(cc.RotateTo.create(time, 90), cc.MoveTo.create(time, cc.p(birdX, 50)))) ); this.overNode.setVisible(true);}MainLayer.prototype.birdRiseAction = function (){ var riseHeight = 60; var birdX = this.bird.getPositionX(); var birdY = this.bird.getPositionY(); var time = birdY / 600; var actionFrame = cc.Animate.create(cc.AnimationCache.getInstance().getAnimation('fly')); var flyAction = cc.Repeat.create(actionFrame, 90000); var riseAction1 = cc.MoveTo.create(0.2, cc.p(birdX, birdY + riseHeight)); var riseAction2 = cc.RotateTo.create(0, -30); var riseAction = cc.Spawn.create(riseAction1, riseAction2); var fallAction1 = cc.MoveTo.create(time, cc.p(birdX, 50)); var fallAction2 = cc.Sequence.create(cc.DelayTime.create(time / 6), cc.RotateTo.create(0, 30)); var fallAction = cc.Spawn.create(fallAction1, fallAction2); this.bird.stopAllActions(); this.bird.runAction(cc.Spawn.create(cc.Sequence.create(riseAction, cc.DelayTime.create(0.1), fallAction),flyAction) );}MainLayer.prototype.onUpdate = function (dt){ if (this.gameMode != START) {return; } this.passTime += dt; this.hoseNode.setPositionX(800 - 200 * this.passTime); this.bird.setPositionX(-500 + 200 * this.passTime); this.checkCollision();}MainLayer.prototype.checkCollision = function (){ if (this.bird.getPositionY() < 60) {cc.log('floor');this.birdFallAction();return; } for (var i = 0; i < this.hoseSpriteList.length; i++) {var hose = this.hoseSpriteList[i];if (!this.isInScreen(hose)) { // continue;}if (cc.rectIntersectsRect(hose.getBoundingBox(), this.bird.getBoundingBox())) { cc.log('hose positionX==' + hose.getBoundingBox().x); cc.log('this.bird positionX==' + this.bird.getBoundingBox().x); cc.log('i==' + i); cc.log('birdFallAction'); this.birdFallAction(); return;} }}MainLayer.prototype.isInScreen = function (sprite){ return (sprite.getPositionX() > 0 && sprite.getPositionX() < 720);}MainLayer.prototype.onExitClicked = function (){}MainLayer.prototype.onStartClicked = function (){ cc.Director.getInstance().resume(); cc.BuilderReader.runScene('', 'MainLayer');}MainLayer.prototype.onExit = function (){ cc.log('onExit');}MainLayer.prototype.onTouchesBegan = function (touches, event){ var loc = touches[0].getLocation();}MainLayer.prototype.onTouchesMoved = function (touches, event){}MainLayer.prototype.onTouchesEnded = function (touches, event){ if (this.gameMode == OVER) {return; } if (this.gameMode == READY) {this.gameMode = START;this.readyNode.setVisible(false); } var loc = touches[0].getLocation(); this.birdRiseAction();}function isInRect(ccRect, ccTouchBeganPos){ if (ccTouchBeganPos.x > ccRect.x && ccTouchBeganPos.x < (ccRect.x + ccRect.width)) {if (ccTouchBeganPos.y > ccRect.y && ccTouchBeganPos.y < (ccRect.y + ccRect.height)) { return true;} } return false;}function getRandom(maxSize){ return Math.floor(Math.random() * maxSize) % maxSize;}

再次提示代碼下載地址:

百度云盤:http://pan.baidu.com/s/1pJnWDb9

flappy博文系列:

flappy bird游戲源代碼揭秘和下載后續(xù)---移植到android真機(jī)上

flappy bird游戲源代碼揭秘和下載后續(xù)---移植到html5網(wǎng)頁瀏覽器

flappy bird游戲源代碼揭秘和下載后續(xù)---日進(jìn)5萬美元的秘訣AdMob廣告 (將寫)

flappy bird游戲源代碼揭秘和下載后續(xù)---移植到蘋果ios上 (未寫)

注:本文轉(zhuǎn)自CSDN。

標(biāo)簽: IOS
相關(guān)文章:
主站蜘蛛池模板: www.亚洲精品 | 欧美日韩高清 | 欧美在线视频一区二区 | 国产日韩欧美 | 午夜操操 | 国产免费一区二区三区 | 在线免费观看日韩视频 | 91精品国产乱码久久久久久久久 | 天天夜夜操 | 天堂在线中文 | 密室大逃脱第六季大神版在线观看 | 天天操操| 国产一区二区三区视频 | 久久在线视频 | 婷婷欧美| 亚洲精品乱码久久久久久蜜桃91 | 亚洲精品国产一区 | 国产精品视频不卡 | 亚洲综合大片69999 | 成人在线片 | 精品久久久久久国产三级 | 亚洲免费网站在线观看 | 四虎久久精品 | 日韩精品av一区二区三区 | 久久久精品电影 | 天堂在线www| 亚洲视频精品 | 精品国产精品三级精品av网址 | 欧美精品一区二区三区四区在线 | 欧美日韩亚洲二区 | 国产成人精品免高潮在线观看 | 久草视频国产 | 欧美日韩在线一区 | 国产在线观看一区 | 精品久久国产 | 亚洲精彩视频在线观看 | 大陆一级毛片免费视频观看 | 夜夜天天操 | 欧美白人做受xxxx视频 | 亚洲视频在线免费观看 | 久久综合一区二区三区 | 亚洲美女视频一区二区三区 | 亚洲欧洲自拍 | 精品国产91久久久久久久 | 欧美日韩中文在线 | 日本成人中文字幕在线观看 | 日韩av在线一区二区三区 | 久热免费在线观看 | 欧美中文在线观看 | 日韩小视频网站 | 人和拘一级毛片 | 伊人91| 亚州中文字幕蜜桃视频 | 夜夜爽99久久国产综合精品女不卡 | 亚洲第一福利视频 | 国产欧美精品一区二区三区四区 | 蜜臀久久99精品久久久无需会员 | www.国产91 | 成人小视频在线观看 | 精品99久久久久久 | 狠狠91| 国产成人免费 | 国产日韩精品久久 | 伊人激情四射 | 成人国产精品 | 国产视频福利一区 | 99久久视频 | 国产三级精品三级 | 亚洲精品一区二区三区 | 亚洲综合在线视频 | 中文字幕综合在线 | 久久精品欧美一区二区三区不卡 | 黑人精品xxx一区一二区 | 日韩免费视频 | 精品成人在线 | 亚洲自拍偷拍欧美 | 中文字幕日韩一区二区不卡 | 男女做爰高清无遮挡免费视频 | 中文字幕在线播放第一页 | 亚洲国产成人精品久久 | 在线视频亚洲 | 亚洲综合视频 | 精品在线播放 | 91亚洲日本aⅴ精品一区二区 | 日韩精品一区二区三区在线观看 | 国产成人精品一区二区三区 | 最新国产视频 | 99热最新网站 | 综合导航 | 亚洲日本va中文字幕 | 久久se精品一区精品二区 | 精品九九 | 一区二区三区在线视频播放 | 久久6| 久久久久国产一区二区三区 | 亚洲 欧美 日韩 精品 | 最新av片| 久久久久久久久久久网站 | 蜜臀精品久久久久久蜜臀 | 欧美成人精品在线观看 | 夜添久久精品亚洲国产精品 | 国产精品亚欧美一区二区 | 欧美中文字幕在线观看 | 亚洲人黄色片 | 亚洲成人一区 | 欧美激情精品久久久久久变态 | 超碰香蕉 | 91精品国产91久久久久久吃药 | www.欧美 | 在线精品一区二区 | 伊人影院在线观看 | 美女超碰 | 久久一精品| 成年人视频在线观看免费 | 99热婷婷| 高清成人 | 日韩欧美精品一区二区三区 | 成人性视频在线播放 | 亚洲午夜精品一区二区三区 | 久久精品日 | 欧美黄色片 | 日韩视频网站在线观看 | 欧美在线播放一区二区三区 | 91成人免费看 | 九九九色 | 欧美午夜视频 | 日日夜夜精品 | 日韩在线视频网站 | 久久爱综合网 | 亚洲欧美日韩精品久久亚洲区 | 日韩成人国产 | 国产免费一区二区 | 欧美日韩a| 91免费在线视频 | 欧美日韩在线观看中文字幕 | 在线观看免费毛片视频 | 久久亚洲一区二区 | 一区二区三区在线免费观看 | 中文字幕一区二区三区乱码图片 | 日韩中文字幕a | 精品欧美乱码久久久久久 | 国产精品综合 | 日韩精品一二三区 | 看毛片网站 | 免费看国产一级特黄aaaa大片 | 欧美中文 | 三级成人在线 | 免费xxxxx在线观看网站软件 | 天天网 | 91亚洲免费视频 | 成人久久久久 | 91久久久精品视频 | 一区二区三区在线观看视频 | 欧美成年黄网站色视频 | 人人精久| 亚洲成人影院在线观看 | 狠狠色综合欧美激情 | 密室大逃脱第六季大神版在线观看 | 久久亚洲一区 | 在线日韩视频 | 午夜在线 | 国产精品美女www爽爽爽动态图 | 欧美成人精品激情在线观看 | 岛国伊人 | 91在线精品秘密一区二区 | 国产成人精品久久二区二区 | 亚州视频在线 | 亚洲高清一区二区三区 | 一区二区三区四区精品 | 国产亚洲一区二区三区 | 91社影院在线观看 | 人人爱夜夜爽日日视频 | 久久精品免费一区二区三区 | 久草国产视频 | 亚洲视频在线观看 | 国内精品国产成人国产三级粉色 | 欧美激情 在线 | 欧美综合一区二区 | 久久久久久亚洲精品 | 狠狠的干| 国产免费一区二区 | 色婷婷久久久久swag精品 | 在线天堂新版最新版在线8 www.国产欧美 | 91精品久久久久久久久中文字幕 | 国产色婷婷 | 亚洲精品在线国产 | 男人天堂网av | 看毛片网 | 三级黄色视频毛片 | 在线成人| 午夜婷婷色 | 国产高清美女一级a毛片久久 | 欧美 亚洲 另类 激情 另类 | 国产单男 | 日韩精品日韩激情日韩综合 | 亚洲成人二区 | 欧美精品一区在线 | 国产三级精品在线 | 亚洲精品66 | 日韩精品久久久久久 | 久久高清 | 色狠狠一区 | 久久精品在线视频 | 亚洲高清在线观看 | 午夜不卡一区二区 | 欧美成人免费观看 | 性视频网站免费 | 久久精品一区二区三区四区毛片 | 精品欧美一区二区三区久久久小说 | 操操操操操操操操操操操操操操 | 一二区视频| 另类 综合 日韩 欧美 亚洲 | a在线免费观看 | 成年人黄色一级毛片 | 亚洲国产日韩欧美 | 久久久国产精品 | 精品成人av | 羞羞视频在线播放 | 久久综合一区二区三区 | 成人看的羞羞视频免费观看 | 日韩综合区 | 四虎永久免费在线 | 午夜精品成人一区二区 | 黑人巨大精品欧美一区二区免费 | 国产在线一区二区三区 | 日韩在线观看三区 | 久久一道本 | 国产精品影院在线观看 | 成人午夜小视频 | 国产一区二区精品 | 中文字幕在线视频第一页 | 国产日韩精品一区二区 | 亚洲人成人一区二区在线观看 | 在线观看视频一区二区三区 | 成人免费在线观看视频 | 免费啪啪网站 | 99久久视频 | 三级网站在线播放 | 中文字幕在线观看 | 国产精品成人久久久久 | 亚洲国产精品自拍 | 久热九九| 精品久久久久久久 | 久久在线视频 | 一级片av | 综合色久| 91在线精品一区二区 | 亚洲欧美一区二区三区不卡 | 黄色资源在线观看 | 欧美日韩中文在线观看 | 日韩精品久久 | 国内精品一级毛片国产99 | 一级毛片国产 | 国产亚洲一区二区在线 | 狠狠综合久久 | 久久国产精品99久久久久久老狼 | 国产亚洲久久 | 欧美亚洲性视频 | 91精品麻豆日日躁夜夜躁 | 国产精品一区久久久久 | 国产成人在线视频 | 91免费观看视频 | 91精品国产综合久久久久久蜜臀 | 欧美一级网| av一区二区在线观看 | 九九免费在线观看 | 国产精品国产 | 亚洲欧美在线免费观看 | 亚欧洲精品视频在线观看 | 国产精品一区二区三区免费 | 日韩一区在线视频 | 综合久草 | 不用播放器的av | av网址在线播放 | 极品久久久久久 | 一级a性色生活片久久毛片 夜夜视频 | 久久精品网 | 国产片久久 | 国产精品女教师av久久 | 色综合区 | 日本精品免费 | 国产不卡一区 | 国产精品原创av片国产免费 | 亚州中文字幕蜜桃视频 | 国内精品在线视频 | 日韩欧美二区 | 精品亚洲自拍 | 一区二区精品视频在线观看 | 啵啵羞羞影院 | 亚洲精品一区二区三区中文字幕 | 精品国产欧美一区二区三区成人 | 天天综合视频 | 国产免费av在线 | 日韩1区 | 日韩国产在线 | 久久av网 | 日本精品视频在线观看 | 国产成人一区二区三区影院在线 | 九九在线国产视频 | 午夜精品久久久久久久男人的天堂 | 国产精品美女一区二区三区四区 | 国产精品久久久久久一区二区三区 | 午夜免费 | 91综合在线观看 | 亚洲国产精品一区二区第一页 | www.国产在线 | 懂色av色香蕉一区二区蜜桃 | 九色网址 | 久久久av亚洲男天堂 | 久久久亚洲一区 | 日韩网站免费观看 | 综合激情av | 欧美精品一区在线观看 | 国产视频1区| 日韩三级网| 天久久 | 草草视频免费 | 午夜精品一区二区三区免费视频 | 国产精品免费久久 | 亚洲精品乱码久久观看网 | 久久久精品视频免费观看 | 日韩欧美成人一区二区三区 | 色5月婷婷丁香六月 | 日韩视频在线观看 | 国产一区二区三区网站 | 免费成人在线网站 | 色猫猫国产区一区二在线视频 | 日韩黄色片免费看 | www.一区二区 | 国产日韩欧美一区 | 天天摸天天看 | 国产精品久久久久久福利一牛影视 | h片在线| 中文字幕在线电影观看 | 噜噜噜噜噜在线视频 | 欧美一级成人欧美性视频播放 | 国产欧美在线一区二区 | 亚洲欧美综合 | a性片 | 国产精品久久久久久久久久免费 | 久久综合九色综合欧美狠狠 | 国产乱码精品一区二区三区手机版 | 国产成人久久 | 亚洲精品视频在线观看免费视频 | 国产在线二区 | 国产特级毛片aaaaaa毛片 | 成人一级片视频 | 欧美日韩精品在线观看 | 成年人在线看 | 超碰在线播 | 91夜夜操 | 久久中文网| 国产人久久人人人人爽 | 中文字幕在线视频免费观看 | 精产国产伦理一二三区 | 性人久久精品 | 日韩欧美一区二区在线 | 久久99精品国产99久久6尤 | 性做久久久久久久免费看 | 亚洲一区二区三区免费在线观看 | jav成人av免费播放 | 精品无人乱码一区二区三区 | 国产精品久久av | 欧美白人做受xxxx视频 | 国产免费观看一区二区三区 | 国产精品久久久久久久久久久久 | 狠狠操一区二区三区 | 中文字幕av网站 | 国产精品久久精品 | 五月婷婷导航 | 色网站在线观看 | 国产高清不卡在线 | 国产传媒日韩欧美 | 久久99精品久久久噜噜最新章节 | 一级免费视频 | 亚洲第一成年免费网站 | 亚洲成人av在线播放 | 亚洲一区在线日韩在线深爱 | 久久综合亚洲 | 免费色在线| 国产乱码精品一区二区三区中文 | 97精品视频在线 | 日本免费视频 | 日韩一区在线观看视频 | 国产精品国色综合久久 | 国产精品影院在线观看 | 在线视频 91 | 精产国产伦理一二三区 | 91av视频在线观看 | 久久精品在线 | 欧美日韩久久精品 | 天堂一区二区三区在线 | 福利91| 国产精品日韩欧美一区二区 | 亚洲网在线 | 国产亚洲一区二区三区在线观看 | 国产九九精品视频 | 九一亚洲精品 | 天天干夜夜骑 | 欧美一级片在线观看 | 亚洲精品久久久久久一区二区 | 亚洲精品乱码久久久久久蜜桃不爽 | 狠狠艹| 日韩草比| 亚洲成人在线视频网站 | 黄a免费| 欧美理伦片在线播放 | 久在线草 | 日韩精品视频在线 | 欧美 日韩 中文字幕 | 亚洲欧美一区二区在线观看 | 国产高清视频一区二区 | 免费在线日韩 | 日本一区二区视频 | 日韩av视屏 | 成人超碰在线 | 成人在线观看免费视频 | 欧美 亚洲 一区 | 一级女性全黄久久生活片免费 | 国产偷录视频叫床高潮对白 | 亚洲最色视频 | 国产日韩欧美 | 亚洲久久久 | 国产在线日韩 | 欧美一级欧美三级在线观看 | 久久夜视频 | 国产激情视频在线观看 | 色在线看 | 亚洲精品电影在线一区 | 三级成人片 | 久久精品国产亚洲blacked | 欧美精品久久久久久久久 | 日韩av免费在线播放 | 免费观看黄色大片 | 色欧美片视频在线观看 | 国产精品一区二区视频 | 四虎永久免费在线 | www.久久.com | 欧美性影院| 国产伦精品一区二区三毛 | 国产成人免费在线观看 | 免费在线日韩 | 日日操天天操 | 黄色大片网站在线观看 | 国产欧美在线视频 | 国产96精品久久久 | 国产不卡一区 | 青青草一区二区三区 | 久久久www成人免费精品 | 日韩国产欧美视频 | 一区二区三区福利视频 | 中文字幕久久精品 | 国产福利视频在线观看 | 亚洲高清视频一区 | 亚洲精品视 | 蜜桃免费视频 | 中文一区 | 91久久国产综合久久蜜月精品 | 国产福利91精品一区二区 | 国产二区在线播放 | 国产精品456在线影视 | 在线欧美| 欧美日韩一区二区三区 | 日韩在线视频观看免费 | 色吊丝2288sds中文字幕 | 中文字幕久久精品 | 日韩精品一区二区三区在线 | 精品欧美一区二区三区 | 日本一区二区三区四区 | 免费看国产一级特黄aaaa大片 | 国产一区二区高潮 | 可以免费在线观看av的网站 | 天天干欧美 | 中文字幕本久久精品一区 | 亚洲欧美精品一区二区三区 | 国产成人在线网站 | 精品国产一区二区三区日日嗨 | 亚洲国产精品久久久久婷婷老年 | 在线日韩| 国产一区二区成人 | 青青操av| 免费福利视频一区二区三区 | 福利视频网址导航 | 国产91亚洲精品 | 精品一二区 | 欧美日韩免费一区二区三区 | 免费午夜视频 | 久久草在线视频 | 欧美国产精品一区二区 | 色www精品视频在线观看 | 日视频 | 成人亚洲 | 久久综合一区 | 美女黄网| 日韩欧美第一页 | 无码日韩精品一区二区免费 | 亚洲三级网站 | 亚洲精品久久久久久一区二区 | 91丨九色丨国产在线 | 午夜在线电影 | 国产一区二区视频在线观看 | 欧美人成在线观看 | 久久久久国产一区二区三区四区 | 日本亚洲最大的色成网站www | 日韩av一区二区三区四区 | 国产精品一区在线看 | 久久精品视频在线播放 | 国产精品久久久久久久久 | 91亚洲国产 | 欧美成人激情视频 | 免费视频一区 | 日韩精品免费在线观看 | 在线成人免费观看www | 国产成人久久 | 99re视频精品 | 国产精品成人一区二区三区 | 亚洲h | 精品护士一区二区三区 | 日本在线观看 | 国产精品第一国产精品 | www.日韩视频 | 久久亚洲视频 | 日韩精品专区 | 999在线观看精品免费不卡网站 | 中文字幕天堂在线 | 国产亚洲欧美在线 | 欧美一级爆毛片 | 国产精品久久久久久久久久久久久久 | 黄色精品一区二区 | 国产真实精品久久二三区 | av黄色在线播放 | 久久久av| 亚洲精品视频免费看 | 国产精品久久久久久久一区探花 | 伊人爱爱网 | 久久亚洲天堂 | 国产精品视频一二三区 | 狠狠爱亚洲 | 欧美a区 | 欧美一二三 | 中文字幕亚洲综合久久久软件 | 亚洲精品中文字幕 | 日日干日日操 | 91天堂 | 夜夜操av | 国产在线播 | 九色在线观看 | 国产精品爱久久久久久久 | 国产日产欧美a级毛片 | 天天干天天干天天干天天射 | 亚洲日本欧美日韩高观看 | 91精品国产91久久综合桃花 | 久热精品在线视频 | 亚洲精品一区二区网址 | 欧美日韩国产在线观看 | 日日日操 | 久久精品91久久久久久再现 | 国产成人精品无人区一区 | 亚州中文字幕蜜桃视频 | 精品久久久久久久久福利 | 久久青草av | 国产精品极品美女在线观看免费 | 欧美视频精品 | 国产成人一区二区三区 | 亚洲黄色一区二区三区 | 中文字幕亚洲一区二区三区 | 亚洲怡红院在线观看 | 在线视频一区二区三区 | 国模精品视频一区二区 | 人人人艹| jizz在线播放 | 日韩综合网 | 日本不卡一区二区 | 成人av电影网址 | 久久999免费视频 | 久久久久久91香蕉国产 | 男人天堂网址 | 国产区视频在线观看 | 欧美国产日韩视频 | 91电影在线观看 | 国产色片在线 | 国产精品久久久久久久久 | 国产在线小视频 | 午夜影院免费看 | 亚洲精品电影网在线观看 | www.亚洲一区二区 | 日韩五码| 国产视频欧美 | 精品久久久久一区二区国产 | 久草av在线播放 | 91在线免费视频 | 中国电影黄色一级片免费观看 | 国产精品高清在线 | 亚洲精品色 | 国产高清精品在线 | 一级电影免费在线观看 | 中文字幕综合在线 | 免费成人在线视频网站 | 亚洲国产二区 | 久久精品色欧美aⅴ一区二区 | 成人精品一区 | 一区二区三区久久 | 青青草免费在线 | 亚洲人免费视频 | 天天干人人干 | 国产欧美综合一区二区三区 | 亚洲 欧美 另类 综合 偷拍 | 欧美精品在线一区二区三区 | 久久久久久免费毛片精品 | 国产精品一区二区三区四区 | 欧洲毛片 | 欧美日一区二区 | 免费在线成人 | 国产精品久久久久久婷婷天堂 | 成人在线观看免费视频 |