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

基于Cocos2D-X的磚塊地圖教程

移動開發 Android 游戲開發
通過文章你將學習如何添加磚塊地圖到游戲中,跟著玩家滾動地圖,并使用對象圖層。也會學到如何使用地圖編輯器去創造磚塊地圖本身。同時還有如何在地圖上創造碰撞領域,如何使用磚塊屬性,如何創造可收集的道具并動態地修改地圖,以及如何確保你的忍者不會吃太多東西。

這是Cocos2D-X磚塊地圖教程系列,你將在此創造一款有關沙漠中的忍者尋找美味的西瓜的簡單游戲。

需要注意的是該教程是關于Cocos2D-X,即Cocos2D-iPhone的跨平臺C++移植。所以你在此編寫的代碼將適用于iPhone,Android和更多平臺上!

在本系列文章的第一部分中,你將學習如何添加磚塊地圖到游戲中,跟著玩家滾動地圖,并使用對象圖層。你將學到如何使用地圖編輯器去創造磚塊地圖本身。

而第二部分是關于如何在地圖上創造碰撞領域,如何使用磚塊屬性,如何創造可收集的道具并動態地修改地圖,以及如何確保你的忍者不會吃太多東西。

注:本篇教程類似于Cocos2D-iPhone教程。

讓我們開始創造磚塊地圖吧!

開始

對于這一教程,你需要安裝最新的Cocos2D-X版本(游戲邦注:在寫本篇教程的時候更新到2.1.4)。如果你還未擁有最新版本的Cocos2D-X,先下載它并在終端運行如下命令去安裝模版:

  1. cd ~/Downloads/cocos2d-x-2.1.4 
  2. ./install-templates-xcode.sh -f -u 

然后使用iOS\cocos2d-x\cocos2dx模版在Xcode創造一個新項目。點擊Next,將項目命名為TileGame,將項目設置為Universal,點擊Next然后點擊Create。

你將在這一項目中使用ARC,所以如果這是你第一次聽到ARC,我會鼓勵你先了解下它。模版并不是默認使用ARC,但幸運的是,我們能夠輕松地進行 修改。前往Edit\Refactor\Convert to Objective-C ARC。往下拉并只選擇文件main.m, AppDelegate.cpp, HelloWorldScene.cpp,然后點擊Check并完成向導的步驟。

select targets(from raywenderlich)

select targets(from raywenderlich)

創建并運行,然后確保一切都還正常運行—-你應該能夠看到標準的“你好世界”屏幕。

接下來下載游戲資源的壓縮文件。壓縮文件包含如下內容:

你將面向玩家對象使用的精靈。

一些伴隨著cfxr效用所創造的音效(你將會在教程中用到)。

一些伴隨著Garage Band所創造的背景音樂。

你將用到的一些磚塊設置—-這將伴隨著你將使用的地圖編輯器,但我認為我們能夠更輕松地將其與其它內容包含在一起。

一些額外的“特別”磚塊,將在之后進行詳細解釋。

當你下載了資源后,打開它并將TileGameResources文件夾拖到項目的Resources群組中。在項目菜單里,右擊 Resources群組,并選擇Add Files to “TileGame”…選擇Resources/TileGameResources文件夾,核實選中了Copy items into destination group’s folder (if needed)以及Create groups for any added folders,然后點擊完成。

如果一切順利的畫,所有的文件都將出現在你的項目中。

你的項目應該如下:

tile game(from raywenderlich)

tile game(from raywenderlich)

現在我們將開始創造地圖!

創造地圖

Cocos2D-X支持基于開放源Tiled Map Editor去創造地圖并將其以TMX格式進行保存。

下載Tiled Map Editor。在編寫本篇教程的時候,其最新版本是0.9.0。

然后運行Tiled,前往File\New,并如下填寫對話內容:

new map(from raywenderlich)

new map(from raywenderlich)

在定向區域中,你可以在Orthogonal或Isometric間做出選擇。在此你將選擇Orthogonal。

接下來你將設置地圖的大小。記住這是在磚塊中,而不是像素中。你將創造一個較小的地圖,所以在此你應該選擇50×50。Tiled將基于像素呈現給 你總體地圖的大小,即在New Map對話的最底部。這是在長度和寬度的基礎上將地圖大小(50個磚塊)乘以磚塊的大小(32像素)所計算出來的。

最后,你將明確寬度和高度。你在此所選擇的是取決于美術人員所設置的磚塊。對于本篇教程,你將使用一些伴隨著Tiled編輯器的樣本磚塊,即32×32規格,選擇它便點擊OK。

接下來你必須添加磚塊設置去繪制你的地圖。在菜單欄上點擊Map,然后關掉New Tileset…,并如下填寫對話框內容:

new tileset(from raywenderlich)

new tileset(from raywenderlich)

為了獲得圖像,點擊Browse并導航至你自己的TileGame/Resources/TileGameResources文件夾,然后選擇你之前從資源壓縮中下載的tmw_desert_spacing.png文件,并將其添加到項目中。它將自動根據文件名填寫名字。

你可以將寬度和高度設置為32×32,因為這也是磚塊的大小。對于邊緣和間隔:

邊緣是關于在Tiled開始尋找真正的磚塊像素前應該為當前的磚塊略過多少多少像素(包括寬度和高度)。

間隔是關于Tiled在明確了實際磚塊像素并轉向下一個磚塊數據之后應該前進多少像素(包括寬度和高度)。

如果你著眼于tmw_desert_spacing.png,你將發現每個磚塊都圍繞著一個1像素的黑色邊緣,這也解釋了邊緣和間隔為1的設置。

tile(from raywenderlich)

tile(from raywenderlich)

當你點擊OK時,你將看到磚塊呈現在Tilesets窗口中。現在你可以開始繪制了。點擊工具欄的Stamp Brush圖標,然后點擊地圖上的任何一個位置去放置一個磚塊。

tileset(from raywenderlich)

tileset(from raywenderlich)

所以繼續繪制地圖—-盡可能發揮創造性!確保添加至少一些建筑到地圖上,因為你在之后將需要一些碰撞內容。

tileset(from raywenderlich)

tileset(from raywenderlich)

為了更輕松地繪制內容,你可以著眼于一些快捷方法。以下是最常用到的一些方法:

你可以在Tileset選擇器中圍繞著一系列磚塊拖曳一個盒子,并同時放下多個相鄰的磚塊。

你可以通過View\Zoom In和View\Zoom Out進行放大和縮小。

z鍵將在基于Stamp Brush工具編輯地圖時進行旋轉。

在一些新功能中你可能會注意到Mini-map。這是一個很棒的功能,它讓你能夠看到一個迷你地圖!著眼于我在Mini-map最下方的迷宮中的糟糕嘗試。紅色盒子代表你在主要編輯窗口中看到的區域。

tileset(from raywenderlich)

tileset(from raywenderlich)

當你在閱讀下一個區域中的滾動時牢牢記住這一Mini-map視圖。

需要注意的是這一教程的資源是出現在地圖前的——所以如果你很懶的話便可以直接利用它。如果你這么做,你應該在Tiled打開地圖并明確它是如何設置的。

當你完成地圖的繪制時,在Layers視圖中雙擊Tile Layer,將名字改為Background。然后點擊File\Save,并將文件保存到TileGame項目中的TileGame \Resources\TileGameResources,將文件命名為TileMap.tmx,并覆蓋現有的文件。

你將在之后使用Tiled做其它事,但是現在讓我們將這一地圖帶進游戲中!

添加Tiled地圖到Cocos2D-X場景中

打開HelloWorldScene.h,在#include “cocos2d.h”之后添加如下內容:

  1. using namespace cocos2d; 

這能指導編輯器去使用cocos2d命名空間,所以你不需要為所有內容加上cocos2d的前綴。

然后添加以下內容到類定義中,即在花括號之后:

  1. private
  2. CCTMXTiledMap *_tileMap; 
  3. CCTMXLayer *_background; 

這創造了一個實例變量去追蹤磚塊地圖本身,并創造了另一個實例變量去追蹤地圖的背景層。你將在之后學到更多有關磚塊地圖層面的內容。

接下來,用如下內容換掉HelloWorldScene.cpp:

  1. CCTMXObjectGroup *objectGroup = _tileMap->objectGroupNamed(“Objects”); 
  2.  
  3. if(objectGroup == NULL){ 
  4. CCLog(“tile map has no objects object layer”); 
  5. return false
  6.  
  7. CCDictionary *spawnPoint = objectGroup->objectNamed(“SpawnPoint”); 
  8.  
  9. int x = ((CCString)*spawnPoint->valueForKey(“x”)).intValue(); 
  10. int y = ((CCString)*spawnPoint->valueForKey(“y”)).intValue(); 
  11.  
  12. _player = new CCSprite(); 
  13. _player->initWithFile(“Player.png”); 
  14. _player->setPosition(ccp(x,y)); 
  15.  
  16. this->addChild(_player); 
  17. this->setViewPointCenter(_player->getPosition()); 

最后一行有個預兆——但不要擔心,你很快就能到達那里。

讓我們暫停一會并解釋對象層面和對象群組。首先注意你是通過在CCTMXTiledMap對象中(而不是layerNamed)通過objectGroupNamed方法檢索對象層面。它返回了一個特殊的CCTMXObjectGroup對象。

然后objectGroup調用了objectNamed方法去獲得一個CCDictionary,并包含了一些有關對象的有用信息,如x和y軸,寬度和高度。在教程的這一部分,你需要關心的便是x和y軸,將其設置為玩家精靈的位置。

在代碼塊的最后你設置了視圖去明確玩家的位置。所以現在添加如下內容到HelloWorldScene.h中:

  1. // In the public section 
  2. void setViewPointCenter(CCPoint position); 

并添加一個新方法到HelloWorldScene.cpp(在文件的最下方最好):

  1. void HelloWorld::setViewPointCenter(CCPoint position) { 
  2.  
  3. CCSize winSize = CCDirector::sharedDirector()->getWinSize(); 
  4.  
  5. int x = MAX(position.x, winSize.width/2); 
  6. int y = MAX(position.y, winSize.height/2); 
  7. x = MIN(x, (_tileMap->getMapSize().width * this->_tileMap->getTileSize().width) – winSize.width / 2); 
  8. y = MIN(y, (_tileMap->getMapSize().height * _tileMap->getTileSize().height) – winSize.height/2); 
  9. CCPoint actualPosition = ccp(x, y); 
  10.  
  11. CCPoint centerOfView = ccp(winSize.width/2, winSize.height/2); 
  12. CCPoint viewPoint = ccpSub(centerOfView, actualPosition); 
  13. this->setPosition(viewPoint); 

這是關于磚塊的解釋。想象這一函數設置了攝像機的中心位置。它讓用戶能夠進入地圖中x,y軸的任何位置—-但是你有可能不想呈現出某些點,如你可能不想要屏幕超過地圖的邊緣(那么它便只會呈現出黑邊!)。

如下圖:

diagram(from raywenderlich)

diagram(from raywenderlich)

如果攝像機的中心小于winSize.width/2或winSize.height/2,那么部分視角是否會脫離屏幕?同樣的,檢查最上方的界限也很重要,這也是setViewPointCenter所做的。

到目前為止這一函數被當成設置了攝像機所面對的中心位置。然而,這并不是它真正做的。這是在Cocos2D-X中操控CCNode的攝像機的一種方法,但使用它會比你將使用的解決方法(移動整個層面)更復雜。

著眼于這一圖解:

diagram(from raywenderlich)

diagram(from raywenderlich)想象一個大世界,你將著眼于坐標軸,即從0到winSize.height/width。你的視圖的中心是 centerOfView,你便能清楚自己想要以哪里為中心(actualPosition)。所以為了用實際位置去匹配視圖中心位置,你需要做的便是向 下傾斜地圖!

通過從視圖中心減去實際位置你便能夠做到這點,然后將HelloWorld層面設為該位置。

說了這么多理論,是時候執行它們了!創建并運行項目,如果一切運行正常,你將在屏幕上看到忍者,并且視圖會不斷移動去呈現他的行動。

simulator(from raywenderlich)

simulator(from raywenderlich)

讓忍者移動

這是個好的開始,但是你的忍者還只是站在那里!這并不像真正的忍者。你將朝著用戶敲打的方向移動忍者而讓他動起來。添加如下代碼到HelloWorldScene.h的公共部分:

  1. void registerWithTouchDispatcher(); 
  2. void setPlayerPosition(CCPoint position); 
  3. bool ccTouchBegan(CCTouch *touch, CCEvent *event); 
  4. void ccTouchEnded(CCTouch *touch, CCEvent *event); 

然后打開HelloWorldScene.cpp并將如下代碼添加到init:

  1. this->setTouchEnabled(true); 

這將層面設置為可碰觸的,所以它將關注于碰觸事件。接下來添加如下方法到文件最底端:

  1. #pragma mark – handle touches 
  2.  
  3. void HelloWorld::registerWithTouchDispatcher() { 
  4. CCDirector::sharedDirector()->getTouchDispatcher()->addTargetedDelegate(this, 0, true); 
  5.  
  6. bool HelloWorld::ccTouchBegan(CCTouch *touch, CCEvent *event) 
  7. return true
  8.  
  9. void HelloWorld::setPlayerPosition(CCPoint position) { 
  10. _player->setPosition(position); 
  11.  
  12. void HelloWorld::ccTouchEnded(CCTouch *touch, CCEvent *event) 
  13. CCPoint touchLocation = touch->getLocationInView(); 
  14. touchLocation = CCDirector::sharedDirector()->convertToGL(touchLocation); 
  15. touchLocation = this->convertToNodeSpace(touchLocation); 
  16.  
  17. CCPoint playerPos = _player->getPosition(); 
  18. CCPoint diff = ccpSub(touchLocation, playerPos); 
  19.  
  20. if ( abs(diff.x) > abs(diff.y) ) { 
  21. if (diff.x > 0) { 
  22. playerPos.x += _tileMap->getTileSize().width; 
  23. else { 
  24. playerPos.x -= _tileMap->getTileSize().width; 
  25. else { 
  26. if (diff.y > 0) { 
  27. playerPos.y += _tileMap->getTileSize().height; 
  28. else { 
  29. playerPos.y -= _tileMap->getTileSize().height; 
  30.  
  31. // safety check on the bounds of the map 
  32. if (playerPos.x <= (_tileMap->getMapSize().width * _tileMap->getTileSize().width) && 
  33. playerPos.y <= (_tileMap->getMapSize().height * _tileMap->getTileSize().height) && 
  34. playerPos.y >= 0 && 
  35. playerPos.x >= 0 ) 
  36. this->setPlayerPosition(playerPos); 
  37.  
  38. this->setViewPointCenter(_player->getPosition()); 

在此你覆蓋了registerWithTouchDispatcher方法去處理目標碰觸事件。這將導致ccTouchBegan/ccTouchEnded方法(單數情況)被調用,而不是ccTouchesBegan/ccTouchesEnded方法(復數情況)。

你可能會好奇單數情況和復數情況有什么區別。不過在這種情況下我們沒有必要去弄清楚這些問題。但是我還是想向所有人介紹這一方法,因為它帶有2個主要優勢:

“你不需要處理NSSets,調度程序能夠區分它們。每次調用你將獲得一個UITouch。”

“你可以通過在ccTouchBegan返回YES而要求一個UITouch。要求碰觸的更新只會被發送到要求它們的委托中。所以如果你刪除/結束/取消更新,你就需要確保它是你的碰觸。這將讓你無需在執行多點碰觸時做各種檢查。”

不管怎樣,在你的ccTouchEnded位置上,你像往常那樣將位置轉換成視圖坐標軸,然后再轉換成GL坐標軸。而新任務便是你調用了this->convertToNodeSpace(touchLocation)。

這是因為碰觸位置將提供給你用戶在視口中輕敲的坐標軸(例如100,100)。但是你可能已經滾動了地圖,所以它將匹配(800,800)的位置。所以調用這一方法將基于你如何移動層面而抵消碰觸。

接下來你將明確碰觸點和玩家位置的區別。你將基于碰觸選擇一個方向,所以首先你應該決定是上下移動還是左右移動。然后你將判斷是正數還是復數而進行上下移動。

你將相對地調整玩家位置,然后將視圖中心設置為玩家的位置,這是你在上部分便寫下的內容!

注意你必須添加一個安全檢查以確保不會將玩家帶離地圖外部!

所以創建并運行項目,然后嘗試它!現在你應該能夠輕敲屏幕去移動忍者了!

simulator(from raywenderlich)

simulator(from raywenderlich)

最后

這時候你已經知道如何創造地圖并將其整合到游戲中了。而在第二部分教程中你將進一步學習如何添加碰撞檢測到地圖中以避免忍者能夠輕松地穿越墻壁。

責任編輯:閆佳明 來源: gamerboom
相關推薦

2011-12-12 10:40:08

Cocos2d-X游戲開發開發環境

2013-05-22 15:49:46

2012-04-17 12:58:44

Cocos2D-X

2012-04-17 12:38:46

cocos2d-x

2012-04-17 12:44:38

cocos2d-x

2013-04-16 10:02:47

cocos2d-x懶人Android開發

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-02-19 20:10:23

Cocos2d-x fCocos2dWindows Pho

2015-07-17 10:38:21

教程COCOS射箭游戲

2015-07-21 16:25:24

2012-04-17 13:12:00

2012-04-17 12:47:27

cocos2d-x

2012-04-17 10:06:08

cocos2d-x

2012-04-17 10:59:31

cocos2d-x

2013-06-13 15:09:37

Cocos2D-X手機游戲開發手機游戲引擎

2012-04-16 15:20:41

cocos2d-x

2014-08-13 10:07:02

游戲引擎

2013-11-13 16:31:32

Cocos2d-x
點贊
收藏

51CTO技術棧公眾號

人妖精品videosex性欧美| 视频一区二区三区入口| 欧美二区乱c少妇| 黄色一级片网址| 97人妻精品一区二区三区软件 | 成人写真视频福利网| 成人小视频免费看| 人人精品久久| 一区二区三区毛片| 久久久久久九九九九| 国产又大又黄又粗| 成人3d动漫在线观看| 91精品国产综合久久香蕉的特点| 久久亚洲a v| 国产一二三在线观看| 久久99精品久久久| 久久免费成人精品视频| 一级片视频免费看| www 久久久| 午夜精品免费在线| 亚洲毛片aa| 亚洲国产综合一区| 日韩中文字幕麻豆| 久99久在线视频| 久久精品无码专区| 欧美一级大片| 亚洲私人影院在线观看| 精品国产乱码一区二区三区四区| 亚洲午夜无码久久久久| 欧美国产免费| 亚洲欧美一区二区三区情侣bbw| 亚洲天堂一区二区在线观看| 男人av在线播放| 国产精品久久久久久户外露出| 亚洲aⅴ男人的天堂在线观看| 日韩精品一区二区三| 欧美日韩精品在线一区| 日韩欧美成人一区| 亚州精品一二三区| av资源网在线播放| 综合中文字幕亚洲| 日韩久久久久久久| 欧美一级视频免费| 韩国一区二区三区| 国产精品精品视频一区二区三区| 国产性70yerg老太| 亚洲乱码电影| 中文字幕精品国产| 欧美特黄一区二区三区| 粉嫩av一区二区| 7777精品伊人久久久大香线蕉超级流畅 | 久久国产精品久久精品国产| 国产精品毛片一区二区在线看舒淇 | 中文在线а√在线8| 亚洲激情一二三区| 亚洲免费视频一区| 99青草视频在线播放视| 久久九九全国免费| 久久国产精品-国产精品| 丰满肥臀噗嗤啊x99av| 国内久久婷婷综合| 国产精品专区一| 黄网站免费在线| 欧美黄色精品| 欧美日韩福利视频| 激情五月婷婷在线| 黄色综合网站| 高清欧美一区二区三区| 精品99久久久久成人网站免费 | 在线观看欧美日韩| 午夜精产品一区二区在线观看的| 日韩精品一区二区三区免费视频| 色狠狠桃花综合| 18禁男女爽爽爽午夜网站免费 | 国产乱肥老妇国产一区二| 久久人妻免费视频| 老司机精品导航| 国产精品久久久久久久久久尿 | 欧美孕妇性xxxⅹ精品hd| 国产在线日韩欧美| 97超碰人人看人人| 亚洲美女性生活| 国产a级毛片一区| 高清视频在线观看一区| 秋霞av鲁丝片一区二区| 91老司机福利 在线| 蜜桃传媒视频第一区入口在线看| 天堂91在线| 久久网这里都是精品| 日韩一级高清毛片| 亚洲性生活网站| 日韩av一级| 欧美另类变人与禽xxxxx| 国产大片一区二区三区| 欧美片网站免费| 精品第一国产综合精品aⅴ| 私密视频在线观看| 久久成人av| 日韩中文第一页| 草视频在线观看| 日韩午夜av在线| 国产精品久久久久秋霞鲁丝| 国产精品午夜福利| 99久久精品国产导航| 欧美日韩国产精品一区二区| 日韩欧美在线观看一区二区| 欧美国产乱子伦| 性生活免费观看视频| a级片免费在线观看| 色综合久久综合网| 九九九九九九九九| 日韩啪啪网站| 日韩在线中文视频| 亚洲精品男人天堂| 激情伊人五月天久久综合| 国产伦精品一区二区三区高清版| 黄上黄在线观看| 欧美—级在线免费片| 337p亚洲精品色噜噜狠狠p| 天堂中文在线播放| 欧美精品第一页| 国产chinese中国hdxxxx| 欧美一区电影| 久久久噜久噜久久综合| 亚洲图片在线播放| 91美女在线观看| 亚洲天堂第一区| gogo亚洲高清大胆美女人体| 精品日产卡一卡二卡麻豆| 蜜桃av免费在线观看| 亚洲黄色毛片| 亚洲自拍偷拍在线| 1024免费在线视频| 精品日韩视频在线观看| 久久久久亚洲av无码麻豆| 任你躁在线精品免费| 视频在线观看99| 国产免费观看av| 国产福利91精品一区二区三区| 日本视频精品一区| 性欧美xxx69hd高清| 欧美成人r级一区二区三区| 少妇av片在线观看| 小嫩嫩精品导航| 国产精品中出一区二区三区| 黄色免费在线观看| 欧美在线观看一区| 少妇大叫太粗太大爽一区二区| 国产真实久久| 91精品免费| 巨大荫蒂视频欧美另类大| 色噜噜久久综合| 亚洲成人av免费在线观看| 中文无码久久精品| 成人www视频在线观看| 国产福利小视频在线观看| 精品久久久视频| 波多野结衣视频播放| 国内精品久久久久久久影视蜜臀 | 亚洲精品永久免费| 国产在线一二区| 国产高清不卡一区| 成人在线免费观看视频网站| 国产美女亚洲精品7777| 久久五月天综合| av中文字幕在线免费观看| 成人欧美一区二区三区在线播放| 成年人黄色片视频| 婷婷综合成人| 国产成人福利网站| 成人欧美亚洲| 欧美丰满美乳xxx高潮www| 欧美激情精品久久久久久免费 | 日韩国产欧美| 91精品国产综合久久香蕉最新版 | 一本久久综合亚洲鲁鲁| 中文字幕av免费观看| 国产精品日韩成人| 中日韩av在线播放| 天天综合一区| 2014亚洲精品| 俺来俺也去www色在线观看| 日韩免费高清av| 国产福利久久久| 91亚洲午夜精品久久久久久| 黄色片久久久久| 青青草91久久久久久久久| 国产日韩在线播放| 午夜羞羞小视频在线观看| 日韩欧美成人一区| 欧美日韩综合在线观看| 久久精品视频一区二区三区| 色播五月综合网| 欧美日韩理论| 欧美日韩电影一区二区| 婷婷激情成人| 欧美激情乱人伦一区| 男女视频在线观看| 欧美精品乱码久久久久久| 久久久综合久久| 国产日韩欧美激情| 午夜影院免费版| 国产欧美成人| 日韩精品一线二线三线| 日韩一级淫片| 国产suv精品一区二区三区88区| 国产69久久| 日韩精品一区二区在线| 久久人妻免费视频| 一区二区在线观看免费视频播放| 成人午夜精品无码区| 久久9热精品视频| 国产3p露脸普通话对白| 日韩片欧美片| 久久www免费人成精品| 成人一级视频| 欧美人在线观看| 精品久久av| 精品精品国产高清a毛片牛牛| 波多野结衣电影在线播放| 夜夜嗨av一区二区三区中文字幕| 亚欧洲乱码视频| 成人自拍视频在线观看| 久久久久久久久久久久久久国产| 欧美日韩激情| 国内精品一区二区| 国产激情精品一区二区三区| 国内精品免费午夜毛片| 麻豆传媒视频在线观看| 亚洲小视频在线| 色wwwwww| 欧美成人福利视频| 99精品国产99久久久久久97| 色哟哟国产精品| 欧美一区二区三区四| 亚洲黄一区二区三区| 成人做爰69片免网站| 久久视频一区二区| 免费不卡的av| 国产精品原创巨作av| 精品999在线| 免费看的黄色欧美网站| 蜜桃视频一区二区在线观看| 99热国内精品| 亚洲在线欧美| 欧美色爱综合| 日韩av在线电影观看| 亚洲老女人视频免费| 国产伦精品一区二区三| 日韩区欧美区| 97netav| 一级毛片精品毛片| 亚洲综合在线中文字幕| 亚洲福利影视| 成人国产精品久久久久久亚洲| 素人啪啪色综合| 热久久这里只有精品| 国产美女高潮在线| 久久久中精品2020中文| 97人人在线视频| 午夜精品久久久久久久男人的天堂| 污污的网站在线看| 欧美极品第一页| 国产高清在线a视频大全| 久久999免费视频| av资源在线看片| 性色av一区二区咪爱| av中文字幕在线观看第一页| 91精品国产91久久久久久吃药 | 欧美成人在线网站| 免费在线播放电影| 国产69精品久久久| 自拍在线观看| 国产+成+人+亚洲欧洲| 天堂√中文最新版在线| 欧美中文字幕视频| 国产成人精品一区二三区在线观看 | 亚洲国产精品狼友在线观看| 国产91色综合久久免费分享| 麻豆tv在线观看| 91小视频在线免费看| 久久精品国产亚洲av久| 91免费观看国产| 东京热无码av男人的天堂| 国产精品久久看| 黄色一级片在线免费观看| 精品高清美女精品国产区| 国产99免费视频| 欧美精品日韩一区| 蜜桃视频在线观看www| 亚洲欧美国产精品久久久久久久 | 亚洲午夜18毛片在线看| 精品视频在线免费观看| 精品国产伦一区二区三| 亚洲国产精品小视频| 爱爱爱免费视频在线观看| 久久精品国产免费观看| 羞羞视频在线免费国产| 91精品国产免费久久久久久 | 亚洲一区和二区| 久久久久久久久久久99999| 林心如三级全黄裸体| 一区二区三区日韩精品| 中文字幕精品无码一区二区| 欧美丰满高潮xxxx喷水动漫| 后入内射欧美99二区视频| 亚洲人高潮女人毛茸茸| 1024在线播放| 国产不卡av在线| 中文字幕视频精品一区二区三区| 欧美午夜免费| 好吊日精品视频| 久久久久久久久久久久91| 成人动漫中文字幕| 久久亚洲AV无码专区成人国产| 1区2区3区精品视频| 国产污污视频在线观看| 91精品国产福利| 国产在线色视频| 欧美激情videoshd| 男人亚洲天堂| 久久青青草原| 欧美99在线视频观看| 国产肥臀一区二区福利视频| 国产精品夜夜嗨| 国产精品1区2区3区4区| 岛国av一区二区| www天堂在线| 色婷婷综合久久久久| 亚洲女同志freevdieo| av一区二区三区在线观看| 俺要去色综合狠狠| 大陆极品少妇内射aaaaa| 日韩av片子| 欧美日韩一道本| 国产v日产∨综合v精品视频| 日韩一区二区a片免费观看| 精品久久久在线观看| www.成人在线观看| 按摩亚洲人久久| 亚洲精品大片| 久久久久亚洲av无码专区喷水| 国内精品视频一区二区三区八戒| 一区二区三区四区五区| 日韩欧美一级二级| 久久av色综合| 精品国产乱码久久久久| 性8sex亚洲区入口| 真实乱视频国产免费观看| 91福利在线导航| 在线观看免费黄视频| 91色琪琪电影亚洲精品久久| 欧美激情第二页| 伊人网综合视频| 在线视频欧美区| 麻豆网站在线| 99一区二区三区| 亚洲免费综合| www.涩涩爱| 日韩精品在线看片z| 国产高清视频色在线www| 欧美日韩在线高清| 久久av资源网| 精品无码m3u8在线观看| 日韩经典一区二区三区| 韩漫成人漫画| 在线播放 亚洲| 成人精品国产免费网站| 男人日女人网站| 中文字幕在线亚洲| 日本亚洲视频| 中国丰满人妻videoshd | 亚洲第一区第二区| 欧美成人精品三级网站| 国产精品无码乱伦| fc2成人免费人成在线观看播放| 一级一片免费看| 久久视频在线直播| 精品亚洲精品| 国产原创精品在线| 亚洲综合久久av| 国产女主播在线直播| 亚洲a成v人在线观看| 亚洲一区观看| 亚洲色图综合区| 亚洲国产成人久久| 精品福利在线| 激情伊人五月天| 亚洲欧洲av在线| 亚洲 精品 综合 精品 自拍| 国产日韩在线看片| 国产日韩欧美一区在线 | 欧美日韩另类一区| 麻豆网站免费在线观看| 在线精品日韩| 久久美女高清视频| 亚洲av综合色区无码一区爱av| 国产福利成人在线| 亚洲国产免费| 污污的视频在线免费观看|