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

【精品教程】Cocos2d-x v3.6制作射箭游戲(二)

移動開發 游戲開發
本章我們的主要任務是創建射箭的弓箭手(也就是游戲豬腳),并且讓這個豬腳隨著觸摸點的改變不斷的旋轉手中的弓箭。

本章我們的主要任務是創建射箭的弓箭手(也就是游戲豬腳),并且讓這個豬腳隨著觸摸點的改變不斷的旋轉手中的弓箭。

分析:

對于這個射箭的角色而言,它能不停的射出弓箭。當我們按住屏幕上某點時,會從該角色拿弓箭的手的位置“畫”一條標注箭支運動軌跡的紅線(看似拋物線);當在屏幕上滑動手指或鼠標時,這條紅線會隨著觸摸點的位置不停的變換軌跡;當松開屏幕上的手指或鼠標時,會射出一支弓箭,這支弓箭會按最終的紅線路徑移動。另外,玩家手中的弓箭會隨著屏幕上的手指或鼠標旋轉。

Player 類

下面我們一起來創建這個 Player 豬腳類,其初步定義如下:

 
  1. class Player: public Sprite 
  2.     public
  3.     Player(); 
  4.    
  5.     bool init(Vec2 playerPos); 
  6.     static Player* create(Vec2 playerPos); 
  7.    
  8.     void createPlayer(); 
  9.     void createPlayerHpBar(); 
  10.     void rotateArrow(Point touchPoint); 
  11.     void createAndShootArrow( Point touchPoint); 
  12.     void shootArrow(); 
  13.     void finishRunAction(); 
  14.     void update(float dt);       
  15.    
  16.     CC_SYNTHESIZE(int, playerHp, PlayerHp);        // 玩家血量值 
  17.     CC_SYNTHESIZE(bool, startDraw, StartDraw);     // 是否開始畫紅色的路徑線 
  18.     CC_SYNTHESIZE(bool, isRunAction, IsRunAction); // 玩家是否正在執行射箭動畫 
  19.    
  20.     private
  21.     Vec2 playerPos;            // 角色在 tmx 地圖上的位置 
  22.     Size playerSize;           // 角色尺寸 
  23.     Size winSize;              // 屏幕窗口尺寸 
  24.     Sprite* playerbody;        // 角色身體 
  25.     Sprite* playerarrow;       // 角色的弓箭,也就是會隨觸摸點旋轉的弓和箭部分 
  26.     Sprite* hPBgSprite;        // 角色血條背景精靈 
  27.     ProgressTimer* hpBar;      // 角色血條 
  28.     ccQuadBezierConfig bezier; // 路徑貝賽爾 
  29.     DrawNode* drawNode;        // 這里表示我們的線條對象 
  30.    
  31. }; 

以上的各方法都是我們這兩章需要實現的,其他更多的方法我們將在后面需要的時候再擴充。 

其中CC_SYNTHESIZE宏的作用是定義一個保護型的變量,并聲明一個getfunName函數和setfunName函數,你可以用getfunName函數得到變量的值,用setfunName函數設置變量得值。如:CC_SYNTHESIZE(int, playerHp, PlayerHp);定義了一個整型的 playerHp 變量,同時還聲明了 getPlayerHp() 和 setPlayerHp() 兩個方法。 

ccQuadBezierConfig是我們新定義的一個結構體,后面我們會詳細的講解。

下面我們就從上到下依次來看看以上的各方法。

創建角色

首先是 Player 的初始化(init)和創建(create),這里我們通過給定 Player 的位置來創建該角色,而這個傳入的坐標位置應該是我們從 TiledMap 的對象層中讀取到的位置(上章有講)。具體代碼如下:

 
  1. Player * Player::create(Vec2 playerPos) 
  2.     Player *pRet  = new Player(); 
  3.     if (pRet && pRet->init(playerPos)) 
  4.     { 
  5.         pRet->autorelease(); 
  6.         return pRet; 
  7.     }else 
  8.     { 
  9.         delete pRet; 
  10.         pRet = NULL; 
  11.         return NULL; 
  12.     } 
  13. bool Player::init(Vec2 playerPos) 
  14.     if (!Sprite::init()) 
  15.     { 
  16.         return false
  17.     } 
  18.     this->playerPos = playerPos; 
  19.     createPlayer();        // 創建角色 
  20.     createPlayerHpBar();   // 創建角色血量條 
  21.     scheduleUpdate(); 
  22.     return true

下面我們接著來看看 createPlayer 方法,該方法將初始化我們的 Player 角色,代碼如下所示:

  1. void Player::createPlayer() 
  2.     playerbody = Sprite::createWithSpriteFrameName("playerbody.png"); 
  3.     playerSize = Size(playerbody->getContentSize().width/2, playerbody->getContentSize().height / 3*2);   
  4.     // 設置Player的尺寸,大小略小于playerbody的尺寸,這樣利于我們后面更準確的進行碰撞設置。 
  5.     playerbody->setAnchorPoint(Vec2(0.7f, 0.4f)); 
  6.     this->addChild(playerbody); 
  7.     this->setPosition(Vec2(playerPos.x+ GameManager::getInstance()->getObjectPosOffX(), playerPos.y + playerSize.height * 0.4f)); 
  8.    
  9.     playerarrow = Sprite::createWithSpriteFrameName("playerarrow.png"); 
  10.     playerarrow->setPosition(Vec2(00)); 
  11.     playerarrow->setAnchorPoint(Vec2(0.3f, 0.5f)); 
  12.     this->addChild(playerarrow);    

createPlayer 方法中我們將創建如下所示的一個游戲角色。

201506251005113376.jpg

因為沒有找到合適的游戲資源(原游戲中得到的資源都是零件,要使用需要把它們一幀一幀重組),所以我們的游戲一切從簡,不整那些復雜的。 

這里我們只把角色簡單分成了兩個部分,第一部分當然是玩家的身體playerbody,第二部分是隨著觸摸點/鼠標旋轉的手和弓箭playerarrow。(PS:當然因為資源限制這個原因,可能會稍稍降低咱游戲的檔次,應該不能怪我啰!O(∩_∩)O~)

設置playerbody位置時,你可能已經發現,我們并沒有把角色身體設置在傳入的playerPos處,而是對它稍微做了一定的調整。這是因為我們傳入的位置它是緊貼本格瓦片底部的(我們制作tmx文件時,需要這樣做。上章沒說清楚,這章補起,要記住哦!)。如下圖所示:

201506251006122519.jpg

Y值坐標也不可太接近本格瓦片底部,也就是不要設為9.990,9.998這類太接近10的,因為 tmx 文件中存放的坐標值是整數,如果設為9.990,9.998,那么存放的值會是9.990 X 32 = 319.68 = 320,同理 9.998 X 32 也是 320。320 對于瓦片大小是32 X 32的地圖來說是個特殊的數字,因為 320 /32 = 10。這樣在程序中就會誤以為9.990,9.998之類的點是坐標上的第10個點。

而且上章我們也說過,由于分辨率適配的原因,對象組中對象的位置與實際的位置是有一定的偏差的,所以我們在設置角色身體位置時,需要修正這些偏差。 

以上代碼中設置位置的原理圖如下:

201506251008052690.jpg

其中,對象組在 X 軸上的偏移值我們把它保存在了 GameManager 中,而 GameManager 是個單例類,后面章節我們會詳細的講解。當然如果你現在就想運行代碼,那就先把GameManager::getInstance()->getObjectPosOffX()部分去掉吧。

創建好角色后,接下來我們需要創建角色的血量條,血量條可通過 Cocos2d-x 中封裝好的進度條類 ProgressTimer 來創建。其代碼段如下:

  1. void Player::createPlayerHpBar() 
  2.     // 創建血條底,即進度條的底背景     
  3.     hPBgSprite = Sprite::createWithSpriteFrameName("hpbg.png"); 
  4.     hPBgSprite->setPosition(Vec2(playerbody->getContentSize().width / 2, playerbody->getContentSize().height)); 
  5.     playerbody->addChild(hPBgSprite); 
  6.     // 創建血條  
  7.     hpBar = ProgressTimer::create(Sprite::createWithSpriteFrameName("hp1.png")); 
  8.     hpBar->setType(ProgressTimer::Type::BAR); // 設置進度條樣式(條形或環形) 
  9.     hpBar->setMidpoint(Vec2(00.5f));        // 設置進度條的起始點,(0,y)表示最左邊,(1,y)表示最右邊,(x,1)表示最上面,(x,0)表示最下面。 
  10.     hpBar->setBarChangeRate(Vec2(10));      // 設置進度條變化方向,(1,0)表示橫方向,(0,1)表示縱方向。 
  11.     hpBar->setPercentage(100);                // 設置當前進度條的進度 
  12.     hpBar->setPosition(Vec2(hPBgSprite->getContentSize().width / 2, hPBgSprite->getContentSize().height / 2 )); 
  13.     hPBgSprite->addChild(hpBar); 
  14.     hPBgSprite->setVisible(false);   // 設置整個血條不可見,我們將在Player 遭受攻擊的時候再顯示血條。 

#p#

旋轉角色弓箭

接下來我們來讓 Player 的弓箭部分跟隨著觸摸點/鼠標旋轉。所以我們定義了如下的函數:

  1. void Player::rotateArrow(Point touchPoint) 
  2.     // 1     
  3.     auto playerPos = this->getPosition(); 
  4.     auto pos = playerPos + playerarrow->getPosition(); 
  5.     // 2 
  6.     Point vector = touchPoint - pos; 
  7.     auto rotateRadians = vector.getAngle(); 
  8.     auto rotateDegrees = CC_RADIANS_TO_DEGREES( -1 * rotateRadians); 
  9.     // 3 
  10.     if (rotateDegrees >= -180 && rotateDegrees <= -90){ 
  11.         rotateDegrees = -90
  12.     } 
  13.     else if (rotateDegrees >= 90 && rotateDegrees <= 180){ 
  14.         rotateDegrees = 90
  15.     } 
  16.     // 4 
  17.     auto speed = 0.5 / M_PI; 
  18.     auto rotateDuration = fabs(rotateRadians * speed); 
  19.     // 5 
  20.     playerarrow->runAction( RotateTo::create(rotateDuration, rotateDegrees)); 

rotateArrow方法的參數為觸摸點的位置。

1)獲取角色弓箭在游戲場景中位置;

2)計算弓箭的旋轉角度。 

這里利用三角正切函數來計算,原理如下圖所示: 

201506251009138662.png

vector(offX,offY) 是觸摸點到弓箭之間的向量,通過 getAngle 方法,我們可以得到 vector 向量與X軸之間的弧度。 

再者,我們需要把弧度 rotateRadians 轉化為角度,CC_RADIANS_TO_DEGREES就是能把弧度轉化為角度的宏。轉化時乘 -1 是因為Cocos2d-x中規定順時針方向為正,這與我們計算出的角度方向相反,所以轉化的時候需要把角度a變為-a。

3)控制旋轉角度的范圍,即只讓它在角色右半邊內旋轉。

4)計算弓箭旋轉時間。 

speed表示炮塔旋轉的速度,0.5 / M_PI其實就是 1 / 2PI,它表示1秒鐘旋轉1個圓。 

rotateDuration表示旋轉特定的角度需要的時間,計算它用弧度乘以速度。

5)讓弓箭執行旋轉動作。

觸摸響應

好了,現在 Player 就初步定義好了。接下來,我們回到游戲場景把Player加入進去,并來測試下弓箭是否跟隨觸摸點旋轉。

在 Cocos2d-x 3.x 引擎中,實現觸摸響應的流程基本是一致的。所以在 3.6 中,其過程依舊是:

  • 重載觸摸回調函數;
  • 創建并綁定觸摸事件;
  • 實現觸摸回調函數。

所以我們要測試弓箭是否跟隨觸摸點旋轉,第一步請先在 GameScene 中重寫如下的觸摸回調函數,并聲明變量:

  1. virtual bool onTouchBegan(Touch *touch, Event *unused_event);  // 開始觸摸屏幕時響應 
  2. virtual void onTouchMoved(Touch *touch, Event *unused_event);  // 觸摸屏幕并在屏幕上滑動時響應 
  3. virtual void onTouchEnded(Touch *touch, Event *unused_event);  // 觸摸結束時響應 
  4.    
  5. private
  6.     Point preTouchPoint;      // 上一個觸摸點 
  7.     Point currTouchPoint;     // 當前觸摸點 

接著,我們需要在 GameScene 的 init 初始化函數中創建并綁定觸摸事件,并先隨便創建一個 Player 對象,用于測試。如下:

 
  1. SpriteFrameCache::getInstance()->addSpriteFramesWithFile("texture.plist""texture.pvr.ccz");   
  2. player = Player::create(Vec2(winSize.width / 4, winSize.height/5));  
  3. this->addChild(player); 
  4.    
  5. // 獲取事件分發器 
  6. auto dispatcher = Director::getInstance()->getEventDispatcher(); 
  7. // 創建單點觸摸監聽器 
  8. auto listener = EventListenerTouchOneByOne::create(); 
  9. // 讓監聽器綁定事件處理函數 
  10. listener->onTouchBegan = CC_CALLBACK_2(GameScene::onTouchBegan,this); 
  11. listener->onTouchMoved = CC_CALLBACK_2(GameScene::onTouchMoved,this); 
  12. listener->onTouchEnded = CC_CALLBACK_2(GameScene::onTouchEnded,this); 
  13. // 將事件監聽器添加到事件調度器 
  14. dispatcher->addEventListenerWithSceneGraphPriority(listener,this); 

Player 的位置是固定的,我們當然不能隨便設,這里只是為了測試。后面的章節中我們會創建一個類來專門管理從 TiledMap 中得到的對象,包括Player、敵人、道具,磚塊等。

以上 plist 和 pvr.ccz文件是我們的打包資源,它們是用 Texturepacker 編輯器打包而來。更多詳細內容請點此查看

綁定好觸摸事件后,最后我們需要實現它們,代碼如下:

 
  1. bool GameScene::onTouchBegan(Touch *touch, Event *unused_event) 
  2.     currTouchPoint = touch->getLocation(); 
  3.     if( !currTouchPoint.equals(preTouchPoint)){ 
  4.         player->rotateArrow(currTouchPoint); 
  5.     } 
  6.     preTouchPoint = currTouchPoint;   
  7.     return true;   
  8.    
  9. void GameScene::onTouchMoved(Touch *touch, Event *unused_event) 
  10.     currTouchPoint = touch->getLocation(); 
  11.     if( !currTouchPoint.equals(preTouchPoint)){ 
  12.         player->rotateArrow(currTouchPoint); 
  13.     } 
  14.     preTouchPoint = currTouchPoint; 
  15.    
  16. void GameScene::onTouchEnded(Touch *touch, Event *unused_event) 
  17.     // 射箭,下章內容 

在 onTouchBegan 和 onTouchMoved 函數中,處理方法是一樣的。即當當前觸摸點與之前的觸摸點不一致時,就旋轉 Player 的弓箭。 

getLocation 方法將 touch 對象中保存的屏幕坐標轉換成我們需要的 Cocos2d 坐標。 分不清屏幕坐標和Cocos2d 坐標的童鞋請參考Cocos2d-x3.0坐標系詳解一文。

當觸摸結束時,Player 對象需要射出弓箭,這個我們暫時不寫。

運行游戲,此時你就可以看到想要的效果了。關于本章資源,請點此下載

責任編輯:倪明
相關推薦

2015-07-17 10:38:21

教程COCOS射箭游戲

2011-12-12 10:40:08

Cocos2d-X游戲開發開發環境

2013-05-22 15:49:46

2013-12-03 10:58:50

Cocos2D-X磚塊地圖

2012-04-17 12:58:44

Cocos2D-X

2012-02-19 20:10:23

Cocos2d-x fCocos2dWindows Pho

2012-04-17 12:38:46

cocos2d-x

2012-04-17 12:44:38

cocos2d-x

2014-08-13 10:07:02

游戲引擎

2013-04-16 10:02:47

cocos2d-x懶人Android開發

2014-04-11 11:10:14

Cocos2d-x v手游引擎

2012-04-17 12:52:01

cocos2d-x

2014-04-21 14:58:27

觸控Cocos2d-x觸控科技

2013-05-22 14:38:44

iOS開發Cocos2d-x坐標系統

2013-06-03 17:04:20

CocoStudioCocos2D-X添加CocoStudi

2014-07-31 16:57:30

2012-04-17 12:47:27

cocos2d-x

2012-04-17 10:59:31

cocos2d-x

2012-04-17 10:06:08

cocos2d-x

2012-04-17 13:09:13

Cocos2d-x
點贊
收藏

51CTO技術棧公眾號

尤物tv国产一区| 色婷婷亚洲婷婷| 丁香婷婷久久久综合精品国产 | 99精品人妻少妇一区二区| 青青操视频在线| 美女一区二区三区在线观看| 久久99精品久久久久久青青91| 亚洲激情 欧美| 91福利精品在线观看| 亚洲在线视频网站| 日韩影视精品| 国产91绿帽单男绿奴| 日韩在线卡一卡二| 九九热最新视频//这里只有精品| 亚洲一区二区乱码| 亚洲欧洲日韩精品在线| 欧美日韩国产限制| 成人手机在线播放| 国产天堂素人系列在线视频| 国产.欧美.日韩| 国产精品户外野外| 99热国产在线观看| 欧美日韩精品| 日韩中文娱乐网| 风间由美一二三区av片| 成人乱码手机视频| 欧美日韩一区国产| 男人揉女人奶房视频60分| 成人在线视频亚洲| 国产精品素人一区二区| 欧美一区二视频在线免费观看| 国产成人精品一区二区无码呦| 奇米影视一区二区三区小说| 久久久久久尹人网香蕉| 日韩三级在线观看视频| 欧美日韩一区二区三区视频播放| 日韩电影中文字幕在线| 69亚洲乱人伦| 一区二区三区亚洲变态调教大结局| 欧洲精品一区二区三区在线观看| 欧美在线一区视频| 黄色在线观看视频网站| 亚洲图片欧美激情| 一区二区三区av在线| 97电影在线| 国产清纯白嫩初高生在线观看91| 久久久综合香蕉尹人综合网| 天天干天天插天天操| 成人黄色大片在线观看| 成人欧美一区二区三区黑人免费| 97免费观看视频| 激情都市一区二区| 国产自摸综合网| 91theporn国产在线观看| 蜜桃av一区二区| 国产精品久久久久久久美男| 亚洲香蕉伊在人在线观| 日本a在线免费观看| 欧美videosex性欧美黑吊| 一区二区三区四区在线播放 | 日韩一级不卡| 午夜精品久久久久久久99热浪潮| 国产性猛交普通话对白| 伊人成人在线| 777777777亚洲妇女| 天天操天天操天天操天天| 翔田千里一区二区| 国产不卡一区二区在线播放| 波多野结衣电车痴汉| 日本成人在线一区| 成人精品一区二区三区| 精品国产av 无码一区二区三区| 国产一区二区在线观看免费| 成人免费91在线看| 婷婷开心激情网| 久久精品一区四区| 亚洲欧美久久234| gogogogo高清视频在线| 亚洲国产成人porn| 一本大道熟女人妻中文字幕在线| 亚洲www免费| 91 com成人网| 中文视频在线观看| 国产欧美日韩视频在线| 日韩中文有码在线视频| 久久免费少妇高潮99精品| 一区二区三区国产在线| 国产精品人人做人人爽| 国产wwwxxx| 91亚洲精品久久久蜜桃| 亚洲乱码一区二区三区| 欧美大片黄色| 91福利资源站| 人妻体体内射精一区二区| 任你弄精品视频免费观看| 色99之美女主播在线视频| 欧美黑吊大战白妞| 日日摸夜夜添夜夜添精品视频| 91精品国产综合久久久久久蜜臀| 成人免费视频国产| 欧美国产综合一区二区| 黄色三级中文字幕| 欧洲成人一区| 亚洲电影成人av99爱色| 99久久久无码国产精品衣服| 欧美精品97| 国产精品国产亚洲伊人久久| 韩国av永久免费| 国产精品青草久久| 欧美在线观看www| 不卡的国产精品| 亚洲欧洲第一视频| 免费在线观看黄视频| 麻豆视频一区二区| 久久riav二区三区| 在线免费观看污| 欧美丝袜丝交足nylons图片| 内射中出日韩无国产剧情| 91精品秘密在线观看| 国产精品白丝jk喷水视频一区| 亚洲第一页在线观看| 亚洲欧洲成人自拍| 在线视频日韩一区| 亚洲美女久久| 久久久久久久国产| 国产wwwxxx| 亚洲天堂成人在线观看| 杨幂毛片午夜性生毛片 | 亚洲福利视频在线| 欧美三级 欧美一级| 蜜桃久久久久久久| 日本一区二区不卡高清更新| 欧美久久天堂| 日韩久久久精品| av成人免费网站| 久久国产精品一区二区| 视频一区免费观看| 欧美××××黑人××性爽 | 国产又大又长又粗又黄| 亚洲精品第五页| 亚洲色图另类专区| 欧美三级午夜理伦三级富婆| 国产中文字幕一区二区三区| 欧美亚洲国产精品| 午夜影院免费体验区| 亚洲成av人综合在线观看| 中文字幕1区2区| 亚洲激情五月| 亚洲在线观看视频网站| 国产精品剧情一区二区在线观看| 欧美午夜免费电影| 国产中文字幕久久| 精品一区二区三区免费视频| 亚洲资源在线网| 高清精品久久| 麻豆国产精品va在线观看不卡| 国产一区二区在线播放视频| 国产精品不卡一区| 激情五月婷婷基地| 欧美精品网站| 国产日韩三区| 成人午夜视屏| 日韩中文字幕亚洲| www.精品久久| 亚洲不卡av一区二区三区| 国产二级一片内射视频播放| 先锋影音久久久| 水蜜桃一区二区三区| 日韩美香港a一级毛片| 欧美精品在线免费播放| 国产91免费在线观看| 五月婷婷另类国产| 国产精品边吃奶边做爽| 丝袜脚交一区二区| 中文字幕黄色大片| 成人知道污网站| 日本亚洲欧美成人| 乱人伦中文视频在线| 精品国产电影一区二区| 69视频免费看| 亚洲激情图片一区| 精品人妻一区二区三区香蕉 | www.超碰97.com| 亚洲欧美网站在线观看| 国产伦精品一区二区三区四区免费 | 亚洲精品aaaaa| 国产精品青草久久久久福利99| av在线看片| 亚洲精品电影在线观看| 中文字幕乱码视频| 一区二区三区精品在线| 成人午夜福利一区二区| 国产麻豆欧美日韩一区| 成人在线免费观看av| 欧美freesextv| 国产伦视频一区二区三区| 欧美亚洲大片| 欧美黄网免费在线观看| 国产系列在线观看| 精品免费国产一区二区三区四区| 日本黄色中文字幕| 亚洲一区在线免费观看| 一级特黄曰皮片视频| 成人美女视频在线观看| 香蕉视频禁止18| 亚洲影院在线| 激情六月天婷婷| 欧美xxav| 欧美日韩视频在线一区二区观看视频| 国产高清视频一区二区| 国产成人福利视频| xxx.xxx欧美| 久久色在线播放| 国产在线超碰| 亚洲精品xxx| 国产肥老妇视频| 欧美日韩亚洲综合| www毛片com| 午夜精品福利在线| 精品99久久久久成人网站免费| 国产精品―色哟哟| 人人妻人人澡人人爽人人精品| 国产精品自在欧美一区| 不卡的av中文字幕| 视频在线在亚洲| 青青青青草视频| 亚洲小说区图片区| 国产精品一二三在线观看| 色综合久久网| 日韩三级在线播放| 嫩草影视亚洲| 久久久久久久久久久久久久久久av| 亚洲无线观看| 999精品视频一区二区三区| 在线日韩三级| 成人黄色av播放免费| 狂野欧美性猛交xxxx| 国产精品91在线| 男人最爱成人网| 欧美在线日韩在线| 在线视频cao| 日本亚洲欧美三级| 久久久人成影片一区二区三区在哪下载| 欧美亚洲国产精品| 伊人久久国产| 国产精品成av人在线视午夜片| 日韩欧美一区二区三区免费观看 | 综合精品久久久| 亚洲一区电影在线观看| 国产精品久久久久三级| 精品亚洲乱码一区二区| 国产精品国模大尺度视频| 在线视频这里只有精品| 亚洲婷婷综合久久一本伊一区| 欧美日韩国产一二三区| 亚洲婷婷在线视频| 久久久精品一区二区涩爱| 亚洲国产精品久久久男人的天堂| 日产精品久久久久久久| 色综合久久综合网欧美综合网| 中文字幕在线欧美| 欧美日韩在线播放| 国产同性人妖ts口直男| 精品国产精品网麻豆系列| 青青青手机在线视频观看| 亚洲一区二区精品| 黄色免费在线观看网站| 欧美激情xxxx性bbbb| 色是在线视频| 国产男女猛烈无遮挡91| 精品久久久久久久久久岛国gif| 成人精品水蜜桃| 亚洲美女久久| 一级一片免费播放| 极品日韩av| 黄色av免费在线播放| 国内精品在线播放| 少妇一级淫免费观看| 欧美激情一区二区三区| 草视频在线观看| 一本色道a无线码一区v| 国产精品自产拍| 日韩电影中文字幕av| 欧美猛烈性xbxbxbxb| 欧美精品videosex极品1| 欧美无毛视频| 亚洲一区二区三区sesese| 久久影院资源站| 一本色道婷婷久久欧美 | 4438全国亚洲精品在线观看视频| jizz欧美| 国产伦精品一区二区三区在线| 色婷婷热久久| 内射国产内射夫妻免费频道| 老司机精品视频导航| 李丽珍裸体午夜理伦片| 国产精品视频一二三区| 国产精品成人免费一区二区视频| 在线免费不卡视频| 高潮一区二区三区乱码| 这里只有精品在线观看| 久草免费在线色站| 国产在线拍偷自揄拍精品| 色吊丝一区二区| 超碰人人爱人人| 蜜桃在线一区二区三区| 蜜桃精品成人影片| 亚洲一区二区三区四区五区中文 | 精品国产电影一区二区| 日本美女高清在线观看免费| 2019中文字幕免费视频| 97久久超碰| 在线码字幕一区| 老牛影视一区二区三区| 亚洲精品国产成人av在线| 亚洲欧美日韩系列| 怡红院成永久免费人全部视频| 日韩成人在线观看| 午夜小视频在线观看| 国产精品人成电影| 精品国产一区一区二区三亚瑟| 韩日视频在线观看| 国产成人亚洲综合a∨婷婷图片 | 飘雪影院手机免费高清版在线观看| 欧美wwwxxxx| 亚洲国产91视频| 秋霞在线观看一区二区三区 | 九九九九九伊人| 中文字幕不卡一区| 亚洲精品无码久久久久| 亚洲欧洲日韩国产| 天堂在线中文网官网| 国产精品污www一区二区三区| 亚洲美女视频| 91免费视频污| 亚洲日本va午夜在线影院| 一级片aaaa| 日韩视频免费大全中文字幕| 国产成+人+综合+亚洲欧美| 色噜噜狠狠一区二区三区| 久久激情综合| 国产全是老熟女太爽了| 色综合一个色综合| 韩国免费在线视频| 国产精品27p| 欧美精品尤物在线观看| 色片在线免费观看| 中文字幕一区在线| 国产孕妇孕交大片孕| 麻豆乱码国产一区二区三区| 国产精品99久久免费| 99视频精品全部免费看| 成人少妇影院yyyy| 色播视频在线播放| 日韩成人在线观看| 亚洲四虎影院| 在线观看欧美一区| 国产馆精品极品| 国产中文字幕免费| 精品无码久久久久久国产| 韩漫成人漫画| 亚洲精品日韩成人| 国产一区二区在线影院| 国产在线视频第一页| 亚洲精品中文字幕女同| 婷婷激情一区| 在线视频91| av电影天堂一区二区在线| 亚洲天堂男人av| 色综久久综合桃花网| 中文字幕一区二区三区四区久久| 91九色丨porny丨国产jk| 久久综合色8888| 一道本无吗一区| 欧美激情区在线播放| 性欧美xxxx免费岛国不卡电影| 欧美精品成人网| 一区二区视频在线| 视频一区二区三区在线看免费看| 国产精品视频在线播放| 欧美影视一区| 成年人网站免费在线观看 | 午夜剧场在线免费观看| 一区二区三区在线免费播放| 日漫免费在线观看网站| 国产日韩精品在线| 在线免费高清一区二区三区| 精品国产成人亚洲午夜福利| 日韩三级在线观看| 欧美大胆性生话| 欧美黑人在线观看| 中文字幕第一区二区| 免费看黄色一级视频| 国产精品综合网站| 亚洲国产一区二区三区a毛片| 亚洲色图第四色| 亚洲国产日韩一区| 国产一精品一av一免费爽爽| 三级4级全黄60分钟| 亚洲一区二区三区中文字幕在线|