日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Writing a Tile Engine in JavaFX

發布時間:2025/3/21 java 76 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Writing a Tile Engine in JavaFX 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

http://jayskills.com/blog/2013/01/09/writing-a-tile-engine-in-javafx/

————————————————————————————————————————————————————————————————————

Artikel Navigation

Java Stammtisch in München

Writing a Tile Engine in JavaFX

Ver?ffentlicht am 9. Januar 2013

With the advent of embedded versions of JavaFX, our framework has become more interesting for game development, since we now can target small consumer devices like tablets & smartphones. So I decided to do a little more experimenting with JavaFX for writing Games. This time I wanted to use Canvas to have more control over the rendering in order to be able to optimize the performance on smaller devices. These are my experiences when writing a Tile Engine.

What’s a Tile Engine?

Back in the early days game consoles & computers had very limited resources. So in order to have games with thousands of large screens developers needed to come up with a method to store the screens in a format other than a bitmap per screen. So Tile Engines were invented that can generate large screens from a limited set of re-usable smaller graphics (Tiles). This saves ram and improves rendering performance.

TileMaps

The instructions how to generate the screen are stored in TileMaps. Those maps are typically organized as a 2-dimensional matrix of Tile ids. Usually the tiles are organized in layers to allow for a simple Z-ordering and more flexibility in combining graphics with different backgrounds. Usually TileMaps also support storing of meta data, for example if certain tiles are blocked, or spawn points for enemies.

A TileMap with several layers created with the

TileSets

The tiles referenced in the map are usually stored in TileSets that consist of a single bitmap and meta information about how to divide it into tiles. Here’s an example of such an image from opengameart.com, a site that hosts game assets with Open Source Licences. In my examples I use some of these graphics.

A typical TileSet Image sized 1024 x 1024 (^2 = good for graphics cards)

ObjectGroups

One additional feature of the TMX format are Object Layers. These special layers can be used to define freeform shapes and polylines and assign properties to them. The basic idea behind that is that we can use them to define areas where Sprites are created (spawnpoints), exits, portals, and non-rectangular collision shapes. It’s up to the creator of the TileEngine or the developer who builds games with it to define how to handle the ObjectGroups. I’m planning to use them extensively, and they are a very nice extension point for declaratively defining the gameplay. You can e.g. use them to define animations, skript dialogs, etc..

Spawnpoints defined in the

Workflow, Tools & Formats

The idea of tilemaps also allows for a nice workflow. Graphic designers can create the assets and game designers can import them into a level editor like “Tiled” and design the levels via drag & drop. The maps are stored in a machine readable TileMap format. Tiled for example uses the TMX Map format for storing the TileMap. That’s a very simple XML format, that can then be loaded by the TileEngine. For my implementation I decided to use the TMX Format, so I can use “Tiled” for designing the levels.

Implementation in JavaFX

For the implementation I decided to use JavaFX Canvas immediate mode rendering instead of the retained mode rendering when using individual Nodes. This gives me a bit more control for optimizing the performance on small devices like the Raspberry Pi.

Reading TMX/TSX files

The first thing we need is a way to read the TileMap (TMX) and TileSet (TSX) files. With JAXB it’s pretty simple to create a TileMapReader that can create POJOs from a file. So if you use the Engine you simply call:

TileMap map = TileMapReader.readMap(“path/to/my/map.tmx”);

The Camera

Since in most games the TileMaps will be larger than the screen, only a part of the Map is rendered. Usually the map is centered on the hero. You can do that by simply tracking the map position of upper left corner of the screen. We refer to this as our Camera position. The position is then updated from the hero’s position just before the TileMap is rendered like this:

// the center of the screen is the preferred location of our herodouble centerX = screenWidth / 2;double centerY = screenHeight / 2;cameraX = hero.getX() - centerX;cameraY = hero.getY() - centerY;

We just need to make sure the camera doesn’t leave the tilemap:

// if we get too close to the bordersif (cameraX >= cameraMaxX) {cameraX = cameraMaxX;}if (cameraY >= cameraMaxY) {cameraY = cameraMaxY;}

Rendering the TileMap using Canvas

Then it’s really easy to render the tiles. we simply loop through the layers and ask the tilemap to render the correct image at the current position. First we need to find out which tiles are currently visible, and the offset, since our hero moves pixel by pixel, not tile by tile:

// x,y index of first tile to be shownint startX = (int) (cameraX / tileWidth);int startY = (int) (cameraY / tileHeight);// the offset in pixelsint offX = (int) (cameraX % tileWidth);int offY = (int) (cameraY % tileHeight);Then we loop through the visible layers and draw the tile:for (int y = 0; y < screenHeightInTiles; y++) {for (int x = 0; x < screenWidthInTiles; x++) {// get the tile id of the tile at this positionint gid = layer.getGid((x + startX) + ((y + startY) * tileMap.getWidth()));graphicsContext2D.save();// position the graphicscontext for drawinggraphicsContext2D.translate((x * tileWidth) - offX, (y * tileHeight) - offY);// ask the tilemap to draw the tiletileMap.drawTile(graphicsContext2D, gid);// restore the old stategraphicsContext2D.restore();}}

The TileMap will then find out which Tileset the Tile belongs to and ask the TileSet to draw it to the Context. Drawing itself is as simple as finding the correct coordinates in your TileSets Image:

public void drawTile(GraphicsContext graphicsContext2D, int tileIndex) {int x = tileIndex % cols;int y = tileIndex / cols;// TODO support for margin and spacinggraphicsContext2D.drawImage(tileImage, x * tilewidth, y* tileheight, tilewidth, tileheight, 0, 0, tilewidth, tileheight);}

Game Loop. So we can simplify it to:

The Game Loop is again very simple. I’m using a TimeLine and a KeyFrame to fire a pulse for the game at a certain framerate (FPS):

final Duration oneFrameAmt = Duration.millis(1000 / FPS);final KeyFrame oneFrame = new KeyFrame(oneFrameAmt,new EventHandler() {@Overridepublic void handle(Event t) {update();render();}});TimelineBuilder.create().cycleCount(Animation.INDEFINITE).keyFrames(oneFrame).build().play();

Sprites

Every call to update in the TileMapCanvas loops through all Sprites and updates them. Basic Sprites currently contain one TileSet with a walkcycle like this:

Since sprites typically have a lot of transparent space around them, in order to have some extra room for animated behavior like like swinging a sword, I decided to allow to add a MoveBox and a CollisionBox for convenience. The CollisionBox can be used to define an area where our hero can be hurt. The MoveBox should be placed around the legs, so it can pass in front of forbidden tiles while the upper body is overlapping the tile. The blueish area around our “hero” is the sprite boundary:

https://www.youtube.com/watch?v=08H6LZkcqXw

Sprites can also have a timed Behavior. On every update the Sprite loops through it’s behaviors and checks if it’s time to fire. If so it’s “behave” method is called. If we have an enemy, like the skeleton in the sample app, we can add it’s AI here. Our Skeleton has for example a very simple behavior to make it follow our hero. It also checks for collision and causes damage to our hero like that:

monsterSprite.addBehaviour(new Sprite.Behavior() {@Overridepublic void behave(Sprite sprite, TileMapCanvas playingField) {if (sprite.getCollisionBox().intersects(hero.getCollisionBox())) {hero.hurt(1);}}});

The default interval is a second. If you need other intervals you can set them. Behaviors are reusable, different sprites can share the same Behavior instance. Behaviors are similar to KeyFrames, and I’m currently also using them to time the Animations (increase the tile index for the next render call).

ObjectGroupHandler

As mentioned in the beginning ObjectGroups are handy extension points. In my example game I use them for defining the spawn points of our hero and the monsters. Currently you simply add an ObjectGroupHandler which in turn uses the information in the ObjectGroup to create the Hero and Monster sprites and add Behavior to them:

class MonsterHandler implements ObjectGroupHandler {Sprite hero;@Overridepublic void handle(ObjectGroup group, final TileMapCanvas field) {if (group.getName().equals("sprites")) {for (TObject tObject : group.getObjectLIst()) {if (tObject.getName().equals("MonsterSpawner")) {try {double x = tObject.getX();double y = tObject.getY();TileSet monster = TileMapReader.readSet("/de/eppleton/tileengine/resources/maps/BODY_skeleton.tsx");Sprite monsterSprite = new Sprite(monster, 9, x, y, "monster");monsterSprite.setMoveBox(new Rectangle2D(18, 42, 28, 20));field.addSprite(monsterSprite);monsterSprite.addBehaviour(new Sprite.Behavior() {@Overridepublic void behave(Sprite sprite, TileMapCanvas playingField) {if (sprite.getCollisionBox().intersects(hero.getCollisionBox())) {hero.hurt(1);}}});}

Putting it all together

To create a sample game all you need to do is create TileMaps, TileSets, one or more ObjectGroupHandler(s) to create the Sprites and add Behavior, and you’re ready to play:

// create the worldTileMap tileMap = TileMapReader.readMap("/de/eppleton/tileengine/resources/maps/sample.tmx");// initialize the TileMapCanvasTileMapCanvas playingField = new TileMapCanvas(tileMap, 0, 0, 500, 500);// add Handlers, can also be done declaratively.playingField.addObjectGroupHandler(new MonsterHandler());// display the TileMapCanvasStackPane root = new StackPane();root.getChildren().add(playingField);Scene scene = new Scene(root, 500, 500);playingField.requestFocus();primaryStage.setTitle("Tile Engine Sample");primaryStage.setScene(scene);primaryStage.show();

That was the starting point of my Tile Engine. In the meantime it has evolved a bit into a more general purpose 2D-engine, so also Sprites that are not using TileSets and Layers that are freely rendered are supported. But it works pretty well so far.

Dieser Eintrag wurde in Allgemein,javafx geschrieben. Link merken.

總結

以上是生活随笔為你收集整理的Writing a Tile Engine in JavaFX的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

免费福利在线视频 | 成年人免费看 | 色在线视频 | 色综合婷婷久久 | 成人国产精品久久久 | 色 免费观看 | 免费观看www小视频的软件 | 中文字幕在线观看免费高清完整版 | 色播五月激情综合网 | 在线视频 国产 日韩 | 欧美激情精品久久久久 | 日韩av高清在线观看 | 成人在线电影观看 | 亚洲日韩中文字幕在线播放 | 成人小视频在线观看免费 | 国产精品久久久久毛片大屁完整版 | 亚洲精品在线观 | 国产一级淫片在线观看 | 久久久久亚洲精品成人网小说 | 超碰在线观看av.com | 日韩精品一区不卡 | 成人午夜电影网 | 日韩欧美在线视频一区二区 | 中文字幕字幕中文 | 99精品热| 成人一级在线观看 | 在线成人中文字幕 | 国产精品久久久久久久久免费看 | 久久久精品国产免费观看一区二区 | 黄色免费国产 | 黄色成人av在线 | 不卡的一区二区三区 | 日本91在线| 99精品在线看 | 日本精品一区二区在线观看 | 久久视影 | 日本一区二区不卡高清 | 69视频在线播放 | 国产在线日本 | 久久av影视 | 亚洲综合小说 | 国产一级91| 天天色天天射天天干 | 婷久久| 日本三级国产 | 91av网站在线观看 | 涩涩网站在线观看 | 免费99| www.久久成人 | 一区二区伦理 | 天天天插 | 久久成年人视频 | 亚洲日本va在线观看 | 成人av免费| 国产精品a成v人在线播放 | 日韩欧美区 | 黄色片免费在线 | 日韩一级成人av | 少妇bbb | 日韩毛片久久久 | 在线观看香蕉视频 | 国产91学生| 九九亚洲精品 | 亚洲综合色播 | 视频国产在线 | 最新中文字幕视频 | 日韩在线免费视频 | 国产精品久久99 | 久久久在线观看 | 激情五月五月婷婷 | 亚洲有 在线 | 久久成人人人人精品欧 | 国产欧美精品一区二区三区四区 | 一区二区三区四区五区在线视频 | 天天干com | 九九免费精品视频在线观看 | 91新人在线观看 | 精品久久久久久久久久久院品网 | 国内精品久久久久久久97牛牛 | 超碰在线个人 | 日韩大片在线观看 | 五月婷婷狠狠 | 国产在线观看91 | 日韩视频一区二区三区在线播放免费观看 | 欧美 日韩 性 | 免费观看一级一片 | 久久久久久久久久毛片 | 久久黄色成人 | 国产精品欧美在线 | 日韩动漫免费观看高清完整版在线观看 | 去看片 | 中文字幕一区二区三区四区在线视频 | 国产一级片免费视频 | 亚洲综合精品视频 | 亚洲欧美视频在线 | 91尤物国产尤物福利在线播放 | 91免费在线 | 九九九九九国产 | 91手机电视 | 国产精品久久久久久久久久久免费 | 天天综合狠狠精品 | 亚洲天堂自拍视频 | 日韩黄色在线 | 久久av在线 | 在线亚洲小视频 | 美女视频黄免费网站 | 成人午夜电影在线观看 | 成年人免费看av | 六月丁香在线视频 | 毛片视频网址 | 蜜臀精品久久久久久蜜臀 | 亚洲无吗天堂 | 亚洲欧洲一区二区在线观看 | av手机在线播放 | 久青草电影 | 日韩一区二区三区在线观看 | 欧美aaaxxxx做受视频 | 毛片二区| 美女黄频免费 | 91热精品| 91在线观看视频 | 高清不卡一区二区三区 | 麻豆视频免费看 | 91久久丝袜国产露脸动漫 | 久久免费看av | 国产韩国日本高清视频 | 高清不卡毛片 | 免费福利小视频 | 日韩精品在线观看av | 亚洲精品动漫久久久久 | 久久爱影视i | 亚洲涩综合 | 色婷婷88av视频一二三区 | 欧美巨乳波霸 | 欧美日韩国产在线一区 | 免费看的黄色录像 | a极黄色片 | 欧洲亚洲女同hd | 欧美激情va永久在线播放 | 色99久久 | 91av在线视频播放 | 国产在线观看地址 | 久久精品视频18 | 日韩激情视频 | 国产精品va在线播放 | 日韩精品综合在线 | 免费看的黄色小视频 | 一区二区 久久 | 狠狠操夜夜操 | 欧美精品一级视频 | 日本爽妇网 | av+在线播放在线播放 | 伊人中文在线 | 精品亚洲视频在线观看 | 国产尤物一区二区三区 | 视频在线观看91 | 成人cosplay福利网站 | 日韩三级视频 | 中文字幕乱码亚洲精品一区 | 日韩一二三在线 | 免费黄色小网站 | 国产理论免费 | 国产一区在线视频播放 | 亚洲国产精选 | 激情在线网站 | 91亚洲在线观看 | 国产视频一区在线 | 在线观看免费一区 | 亚洲精品h | 国产一级二级三级在线观看 | 黄色影院在线免费观看 | 国产精品一区久久久久 | 国产一区二区精品久久 | 99热这里只有精品1 av中文字幕日韩 | av丝袜天堂 | 三级小视频在线观看 | 91.精品高清在线观看 | 在线免费观看国产黄色 | 精品视频在线播放 | 亚洲国产精品va在线看黑人动漫 | av在线8| 国产在线视频一区 | 中文字幕网站视频在线 | 精品一二三四五区 | 国产精品一区二区三区久久久 | 欧美一级欧美一级 | 最新在线你懂的 | 欧美一区在线观看视频 | 国产精品网站 | 免费观看国产精品视频 | 99视频网址 | 中文字幕区 | 久久精品日本啪啪涩涩 | 亚洲精品美女视频 | 91av片 | 色综合久久久久综合99 | 中文字幕丰满人伦在线 | 久久99亚洲精品久久久久 | 国产+日韩欧美 | 97人人澡人人爽人人模亚洲 | 成人手机在线视频 | 国产视频久久久久 | 免费成人av在线看 | 九九九九九国产 | 欧美日韩一区二区视频在线观看 | 亚洲一二区视频 | 玖玖视频在线 | 久久免费视频8 | 日本精品久久久久影院 | 青青河边草手机免费 | 国内外成人免费在线视频 | 国产精品视频你懂的 | 国产做爰视频 | 人人玩人人添人人澡97 | 国产精彩视频一区二区 | 国产69久久久欧美一级 | 911久久 | 久久久性 | 黄色网www | 日韩亚洲精品电影 | 婷婷av电影| 四虎小视频 | 欧美最猛性xxxxx免费 | 涩涩伊人 | 最近日本中文字幕 | 亚洲精品在线电影 | 黄色片免费看 | 91成人欧美 | 久草在线免费在线观看 | 日韩专区 在线 | 91精品啪在线观看国产线免费 | 蜜臀aⅴ精品一区二区三区 久久视屏网 | 免费亚洲一区二区 | 2020天天干夜夜爽 | 欧美日韩久久一区 | 国产精品va视频 | 久久视奸 | 蜜桃av人人夜夜澡人人爽 | 三级视频国产 | 欧美激情精品久久久久 | 午夜视频黄 | 久久九九久久 | www.久久久.com| 亚洲成人黄色在线 | 国产精品亚洲人在线观看 | 亚洲精品国产综合99久久夜夜嗨 | 91午夜精品 | 国产高清在线永久 | 青草视频在线免费 | 99c视频高清免费观看 | 久久久久麻豆 | 日韩色爱 | 国产精品21区 | 在线综合色 | 日韩毛片在线播放 | 久久精品综合一区 | 久久久资源 | 一级精品视频在线观看宜春院 | 久久久久久国产一区二区三区 | 久久一视频 | 91精品久久久久久粉嫩 | 成人免费在线观看电影 | 日韩电影一区二区三区在线观看 | 欧美精品亚州精品 | 麻豆一区二区 | 超碰在线天天 | 国产自制av | 久久99亚洲精品久久 | 在线国产日韩 | 国产高清视频色在线www | 91中文视频| 午夜性福利| 成人片在线播放 | 中文字幕精品www乱入免费视频 | 久久一区二区免费视频 | 97人人人人 | 少妇18xxxx性xxxx片 | 免费看的黄色小视频 | 中文有码在线视频 | 日韩免费一级a毛片在线播放一级 | 最近免费观看的电影完整版 | 香蕉精品视频在线观看 | 成人影片在线免费观看 | 久久电影网站中文字幕 | 亚州国产视频 | 在线不卡a | 亚洲精品九九 | 午夜国产在线 | 色综合夜色一区 | 国产香蕉久久精品综合网 | 久久夜夜爽 | 99热这里只有精品在线观看 | 99久在线精品99re8热视频 | 久久久久在线视频 | 9在线观看免费 | 精品国产一区二区三区四区在线观看 | 久久一区二区免费视频 | 中文av字幕在线观看 | 99视频在线免费观看 | 在线观看色网 | 欧美在线日韩在线 | 久久99亚洲精品 | 色噜噜日韩精品一区二区三区视频 | 五月天色中色 | 精品欧美一区二区在线观看 | 免费视频成人 | 日韩精品一区二区三区三炮视频 | 成年人免费电影在线观看 | 91热在线 | 欧美 日韩 国产 成人 在线 | 免费的成人av | 亚州五月| 久久精品99精品国产香蕉 | 91在线观看视频 | 日日夜夜综合 | 亚洲3级 | 国产91精品欧美 | 国产视频精品久久 | 亚洲欧美视频在线 | 九九导航 | 国产精品人人做人人爽人人添 | 日韩欧美一区二区三区免费观看 | 一本色道久久综合亚洲二区三区 | 天天干,天天射,天天操,天天摸 | 在线精品视频免费播放 | 91av在线视频免费观看 | 国产一区二区在线播放 | 韩国一区视频 | 日韩中文幕| 久久精品视频99 | 国产精成人品免费观看 | 亚洲闷骚少妇在线观看网站 | 91九色成人蝌蚪首页 | 国产高清中文字幕 | 欧美一级高清片 | 波多野结衣在线播放视频 | a黄色大片 | 久久网址 | 一色屋精品视频在线观看 | 欧美精品视 | 欧美视频xxx | 又爽又黄在线观看 | 国产又粗又硬又爽的视频 | 夜夜夜夜操 | 亚洲黄色激情小说 | 91黄色在线看 | 精品久久久久久久久久久久 | 国产午夜精品一区二区三区嫩草 | 亚洲热久久 | 超碰97中文 | 91探花系列在线播放 | 日韩av电影免费在线观看 | 99视频国产精品免费观看 | 曰韩在线| 在线免费高清一区二区三区 | 国产精品视频地址 | 日韩av在线免费看 | 国产视频久久 | 婷婷综合 | 日产av在线播放 | 久久久高清 | 国产精品嫩草影视久久久 | 操操操夜夜操 | 国内精品久久久久久久97牛牛 | 国产最新精品视频 | 亚洲国产成人精品电影在线观看 | 九九免费精品视频在线观看 | 亚洲精品国产第一综合99久久 | 激情小说网站亚洲综合网 | 成人一区不卡 | 99视频在线播放 | 98久9在线 | 免费 | av播放在线 | 中文一区二区三区在线观看 | 久久99中文字幕 | av解说在线观看 | 91tv国产成人福利 | 伊人狠狠操 | 亚洲区另类春色综合小说校园片 | 亚洲少妇久久 | 日b黄色片| 久久婷婷网 | av免费网站在线观看 | 99免费在线视频观看 | 婷婷五月色综合 | 麻豆视频一区 | 国产成人精品日本亚洲999 | 999视频在线播放 | 国产精品视频不卡 | 免费高清男女打扑克视频 | 中文字幕在线免费播放 | 国产91在线播放 | 四虎在线观看视频 | 嫩草av在线 | 免费在线观看av片 | 婷色| 五月天网页 | 欧美日韩网站 | 国产精品久久麻豆 | 免费av大全| av性网站 | 国产一区二区在线播放 | 欧美视频不卡 | 国产成人久久精品77777 | 国产精品久久人 | 亚洲精品玖玖玖av在线看 | 丁香久久| 制服丝袜天堂 | 99精品国产免费久久久久久下载 | 亚洲精品久久久蜜臀下载官网 | 日韩3区| 国产精品区免费视频 | 91视频观看免费 | 天天干一干 | 一区二区中文字幕在线观看 | 国产原创av在线 | 亚洲午夜久久久久久久久久久 | 天天操天天射天天爽 | 91系列在线 | 亚洲综合激情小说 | 国产高清免费观看 | www.天天操| 国产亚洲资源 | 最近在线中文字幕 | 国产福利精品一区二区 | 久久综合久久综合这里只有精品 | 日韩三级视频 | 午夜黄网| 日韩一二区在线 | 99久久精品免费视频 | av永久网址 | 九九在线高清精品视频 | 国产精品视频资源 | www.色综合.com | 中文字幕婷婷 | 国产98色在线 | 日韩 | 欧美日韩xxxxx | 国产又粗又猛又色 | av在线播放中文字幕 | 久久久久久国产精品999 | 日韩中字在线观看 | 丁香久久五月 | www.夜夜夜| 婷婷av在线 | 国产成人精品免高潮在线观看 | 福利区在线观看 | 亚洲精品视频网址 | 国产 视频 高清 免费 | av在线收看 | 日韩一区二区三区免费视频 | 欧美高清视频不卡网 | 欧洲精品久久久久毛片完整版 | www.com在线观看 | 成人av手机在线 | 国产在线传媒 | 九九热只有这里有精品 | 久久精品美女视频网站 | av电影免费观看 | 亚洲国产理论片 | 国产精品观看视频 | 超碰资源在线 | 亚洲精品久久久久58 | 国产精品九九视频 | 免费观看丰满少妇做爰 | 2021国产精品视频 | 天天射综合网视频 | 天天操天天射天天添 | 国产精品久免费的黄网站 | 黄色www在线观看 | 亚洲国产免费 | 99精品国产一区二区三区不卡 | 国产亚洲欧洲 | 久9在线| 超碰在线人人艹 | 久久久久久久久久久高潮一区二区 | 在线 国产 亚洲 欧美 | 精品在线观看一区二区三区 | 欧美日韩亚洲在线 | 啪啪凸凸 | 久久黄色精品视频 | 91在线影院 | 国产尤物在线 | 亚洲最快最全在线视频 | 伊人五月综合 | 亚洲国产丝袜在线观看 | 日韩在线观| 91视频在线免费 | 久久久精品欧美一区二区免费 | 激情综合久久 | 丁香六月av | 激情视频免费观看 | 国产高清视频在线播放 | 亚洲国产精品成人精品 | 欧美一级性 | 国产精品地址 | 日韩免费在线视频观看 | 天天综合网久久 | 一区二区电影在线观看 | 久久在现| 99久久精品久久亚洲精品 | 97成人在线免费视频 | www日日| 成 人 黄 色 视频 免费观看 | 91成人在线免费观看 | 天天色天天射综合网 | 91精品视频免费在线观看 | 视频直播国产精品 | 成 人 黄 色 视频 免费观看 | 国产免费久久av | 九色精品在线 | 国产日韩在线播放 | 成人久久18免费网站麻豆 | 国产精品免费观看国产网曝瓜 | 97成人资源站 | 超碰97网站| 丁香婷五月 | 国产高清在线免费观看 | 99热 精品在线 | 在线观看av网 | 91亚洲精| 99热手机在线 | 在线亚洲欧美视频 | 8x成人免费视频 | 91一区二区三区久久久久国产乱 | 国产理论免费 | 欧美坐爱视频 | 精品夜夜嗨av一区二区三区 | 91亚洲影院 | 不卡av电影在线 | 日本电影久久 | 国产探花| 亚洲高清视频一区二区三区 | 日韩乱色精品一区二区 | 91亚洲欧美激情 | 中文字幕永久 | 九色精品免费永久在线 | 黄网站色 | 色妞色视频一区二区三区四区 | 国产精品毛片一区视频 | 国产精品自产拍在线观看网站 | 99精品视频播放 | 国产色在线,com | 91香蕉视频 | 麻豆久久久久久久 | 人人超碰97| 国产最新福利 | 国产色婷婷在线 | 一区二区三区四区久久 | 国产精品不卡在线观看 | 91精品秘密在线观看 | 99色婷婷 | 久久久视频在线 | 狠狠色伊人亚洲综合网站色 | 丝袜+亚洲+另类+欧美+变态 | 探花视频在线观看免费 | 精品免费视频. | 国产一区免费 | 国内久久久 | 久久中国精品 | 97精品超碰一区二区三区 | 国产一级片久久 | 欧美另类69 | 午夜影院日本 | 中文字幕高清免费日韩视频在线 | 亚洲综合丁香 | 久久在线 | 亚洲成人av电影在线 | 性色xxxxhd| 在线观看中文字幕dvd播放 | 日本大片免费观看在线 | 亚洲国产一区二区精品专区 | 99久久这里只有精品 | 黄av免费在线观看 | 色停停五月天 | 亚洲精品久久久久中文字幕二区 | 久久国产精品一国产精品 | 日韩在线观看a | 最新中文字幕在线播放 | 超碰97成人 | 91视频在线免费下载 | 成人午夜av电影 | 国产在线97 | 欧美精彩视频 | 顶级bbw搡bbbb搡bbbb | 日日操日日 | 精品亚洲二区 | a级片韩国 | 国产成人精品av在线 | 国产精品va视频 | 超碰在线观看av | 超碰大片| 激情小说久久 | 国产亚洲精品久久久久久无几年桃 | 亚洲国产精彩中文乱码av | 国产精品一区二区中文字幕 | 久草免费手机视频 | 日韩高清在线看 | 天天爱av导航 | 国产一区二区精 | 天堂在线视频中文网 | 国产夫妻性生活自拍 | 青青河边草观看完整版高清 | 夜夜躁日日躁狠狠躁 | 成人国产精品 | 99超碰在线播放 | 久久久久久久久免费视频 | 亚洲一级片免费观看 | 国产色视频一区二区三区qq号 | 伊人五月天.com | 欧美经典久久 | 国产中文字幕第一页 | 五月婷影院 | 日本黄色大片儿 | 少妇bbb搡bbbb搡bbbb′ | www.狠狠色| 亚洲电影在线看 | 久久av中文字幕片 | av在线免费播放网站 | 久久五月天综合 | 国产破处在线视频 | 久久综合亚洲鲁鲁五月久久 | 欧美色精品天天在线观看视频 | 最近更新的中文字幕 | 中文字幕乱码在线播放 | 欧美精品乱码99久久影院 | 中文字幕亚洲五码 | 久久久国产精品一区二区中文 | 久久影视一区 | 国产乱老熟视频网88av | 国产精品美女久久久久久久久 | 一级α片| 中文字幕 欧美性 | 成人在线视频你懂的 | 中文字幕一区在线观看视频 | 国产人在线成免费视频 | 九九九九九精品 | 国产福利一区二区三区视频 | 久久精品视频网站 | 久久久久久久久久久久久9999 | 久久线视频 | 久久久久一区二区三区四区 | 99在线观看视频 | 91精品国自产在线 | 欧美精品久久久久a | 欧美日韩国产精品一区二区亚洲 | 综合激情伊人 | 欧美日韩69 | 国产美女精品视频免费观看 | 色欧美成人精品a∨在线观看 | 成人毛片一区 | 丁香影院在线 | 国产美女精品 | 亚洲国产综合在线 | 黄色精品国产 | 欧美精品中文 | 美女网站视频色 | 18国产精品白浆在线观看免费 | 人人搞人人干 | 久久国产一区二区三区 | 国产黄色片免费 | 欧美国产日韩在线视频 | 91精品啪在线观看国产线免费 | 中文av在线天堂 | 国产精品视频专区 | 97精品国产97久久久久久免费 | 一级黄视频 | 亚洲精品视频在线观看免费 | 999亚洲国产996395 | 国产一区二区影院 | 亚洲免费av观看 | 日本亚洲国产 | 手机成人免费视频 | 日韩黄色av网站 | 中文av在线天堂 | 日本婷婷色 | av中文字幕网址 | 丰满少妇一级 | 开心激情五月婷婷 | 日韩在线网 | 国产精品激情在线观看 | 五月婷婷香蕉 | 91av蜜桃| 国产91在 | 国产精品一区二区三区在线 | 日色在线视频 | 国产精品视频不卡 | 午夜精品导航 | 天天色宗合 | 成人在线免费看视频 | 69国产盗摄一区二区三区五区 | www.久久爱.cn | 国产精品美女视频网站 | 国产精品久久久久久久婷婷 | 色伊人网 | 欧美在线视频免费 | 天堂视频中文在线 | 久草在线网址 | 亚洲成人精品影院 | 九九免费在线观看视频 | 国产午夜三级一区二区三桃花影视 | 久久久久成人精品亚洲国产 | 99精品国产一区二区三区麻豆 | 人人干干人人 | 亚洲国产操 | 欧美成亚洲 | 国产一区二区三区午夜 | 亚洲精品在线一区二区三区 | 香蕉网在线观看 | 久久爱导航 | 99热9 | 久久久国产精品亚洲一区 | 96久久 | 国产一区二区不卡视频 | 国产永久免费高清在线观看视频 | 青青河边草免费观看完整版高清 | 91精品国产一区二区三区 | 久久人人爽人人爽人人片av软件 | 在线观看的a站 | 国产精品第二页 | av中文字幕网站 | 国产传媒中文字幕 | 国产精品久久久一区二区三区网站 | 国产免费影院 | 五月婷婷久久丁香 | 欧美色黄 | 女人18毛片a级毛片一区二区 | 欧美日韩二三区 | 97精品伊人 | 日韩精品2区 | 日韩在线小视频 | 99se视频在线观看 | 欧美人牲 | www色网站 | 日韩美一区二区三区 | 天天干天天拍天天操天天拍 | 九九九九九精品 | 成人亚洲精品国产www | 国内视频在线 | 亚洲另类视频在线 | 国产精品黄色av | 国产麻豆精品一区二区 | 国产精品毛片一区视频播 | 91精品在线免费观看 | 天天综合网 天天 | 国产一级片在线播放 | 黄色特级一级片 | 亚洲国产精品电影 | 丰满少妇对白在线偷拍 | 国产99爱| 99国产免费网址 | 久久久精品国产一区二区电影四季 | 奇米7777狠狠狠琪琪视频 | 日日爽夜夜爽 | 欧美一级性生活视频 | 日韩欧美在线综合网 | 欧美日韩久久一区 | 日韩欧美精品一区二区三区经典 | 婷婷色综合色 | 天天射色综合 | 麻豆国产在线播放 | 深爱开心激情 | 国产精品一区二区在线观看 | 久久国产精品一区二区三区 | 西西www4444大胆视频 | 国产中文字幕网 | 免费网站黄 | 国产免费黄视频在线观看 | 97在线公开视频 | 日韩av一区二区三区 | 国产999久久久 | 日本深夜福利视频 | 九九九九免费视频 | 国产又粗又猛又爽 | 欧美精品你懂的 | 亚洲成人精品av | 天天操天天干天天插 | 五月婷婷毛片 | 黄色a视频免费 | 国产精品中文字幕av | 欧美老少交 | 51久久成人国产精品麻豆 | 欧美坐爱视频 | 国产福利精品一区二区 | 国产麻豆精品在线观看 | 一级黄色电影网站 | 99精品国产99久久久久久97 | 国产精品一区二区在线观看 | 国内精品中文字幕 | 亚洲91中文字幕无线码三区 | 色综合久久久久综合99 | 狠狠狠狠狠狠狠干 | 亚洲男人天堂a | 人人干在线 | 97超级碰碰碰碰久久久久 | 国产成人久久精品77777综合 | 国产精品v欧美精品v日韩 | 久久国产精品久久w女人spa | 亚洲九九九在线观看 | 成人午夜免费福利 | 91网在线观看 | 日韩av片无码一区二区不卡电影 | 夜夜骑日日操 | 国产一二三精品 | 久热精品国产 | 亚洲精品国产成人av在线 | 日本精品久久久久影院 | 国产成人精品女人久久久 | 99久久婷婷国产精品综合 | 精品在线视频播放 | 天天插综合网 | 久久精品99国产国产精 | 天天操·夜夜操 | 亚洲成人黄色在线 | 九九九九精品 | 狠狠的日| 2021国产在线 | 在线国产99 | 中日韩免费视频 | 国产精品伦一区二区三区视频 | 国产91精品看黄网站在线观看动漫 | 国产一区二区在线精品 | 日韩欧美成人网 | 日本黄色免费播放 | 在线国产能看的 | 在线电影av| 国产九色91 | 黄色软件大全网站 | 911香蕉视频 | 国产一区二区成人 | 免费av免费观看 | 中文字幕在线观看第二页 | 国产精品日韩欧美一区二区 | 国产精品资源在线 | 午夜精品影院 | 国产一区成人 | 亚洲国产精品久久 | 婷婷夜夜| 久久最新网址 | 国产精品九九久久99视频 | 成人久久久久 | 国产高清视频在线观看 | 国产精品一区久久久久 | 国产96视频 | 免费色视频在线 | 亚洲影院色 | www.久草.com| 五月婷婷丁香激情 | www久久久久 | 国产韩国精品一区二区三区 | 色片网站在线观看 | 黄色大全免费网站 | 午夜91视频 | 久久中国精品 | av动图| 91视频中文字幕 | 伊人婷婷在线 | 国产精品乱码久久久久久1区2区 | 免费福利在线播放 | 国产精品自产拍在线观看 | 久久久久久久久网站 | 91免费观看视频在线 | 欧美精品一区在线 | 日韩免费不卡av | avhd高清在线谜片 | 99自拍视频在线观看 | 成年人在线免费看视频 | 狠狠干网站 | 欧美一区二区视频97 | 天天草天天干天天射 | 天天看天天干天天操 | 日日操天天操夜夜操 | 国产美女主播精品一区二区三区 | 国产日韩中文字幕 | 美女视频免费一区二区 | av亚洲产国偷v产偷v自拍小说 | 欧美在线一二区 | 久久国产品 | 在线不卡视频 | 精品影院一区二区久久久 | 日韩精品久久一区二区三区 | 久久少妇免费视频 | 在线免费观看的av网站 | 日韩精品一区在线观看 | 国产高清在线免费视频 | 91精品资源 | 国产91在线免费视频 | 欧美成人播放 | 精品少妇一区二区三区在线 | 国产 日韩 欧美 中文 在线播放 | 国产成人免费在线 | 天天干天天做 | 一区二区成人国产精品 | 亚洲精品字幕在线观看 | 亚洲国产精品一区二区尤物区 | 免费a网址 | 国产剧情在线一区 | 99精品欧美一区二区三区 | 精品视频国产 | 一区二区三区精品在线视频 | 国语自产偷拍精品视频偷 | 国产69精品久久久久久久久久 | 国产精品专区在线 | 日日综合 | 成人免费在线视频观看 | 男女精品久久 | 丁香六月久久综合狠狠色 | 日韩欧美精品一区二区 | 亚洲精品永久免费视频 | 免费日韩 精品中文字幕视频在线 | 亚洲人xxx| 日韩精选在线观看 | 日韩综合一区二区三区 | 成人av一二三区 | 日韩欧美国产激情在线播放 | 涩五月婷婷 | 欧美一区二区精美视频 | 日韩精品中文字幕一区二区 | 少妇搡bbb | 亚洲精品国产麻豆 | 在线观看一二三区 | 亚洲一区精品人人爽人人躁 | 五月婷婷视频在线 | 丁香五月亚洲综合在线 | 97人人人人| 韩国av永久免费 | 热热热热热色 | 亚洲黄色在线看 | 国产精品丝袜在线 | 网站免费黄色 | 国产亚洲高清视频 | www.色午夜.com| 五月婷亚洲 | 极品嫩模被强到高潮呻吟91 | 黄色软件视频大全免费下载 | 成人av影视| 制服丝袜一区二区 | 国产成年人av | 日日草夜夜操 | 激情综合网婷婷 | 免费在线观看不卡av | 国产精品久久久一区二区 | 人人爽人人爱 | 丁香在线视频 | 精品一区 在线 | 国产精品1区2区在线观看 | 91一区二区在线 | 婷婷综合av| 日韩av资源在线观看 | 国产一级片不卡 | 亚洲视频免费在线观看 | 麻豆 videos| 免费成人在线观看 | 色综合色综合久久综合频道88 | 欧美性色综合网站 | 在线观看亚洲免费视频 | 国产精品区二区三区日本 | 日本精油按摩3 | 日韩久久久久久久久久久久 | 免费在线91 | 青青射| 最新日韩在线观看视频 | 久久免费精彩视频 | www久久久久| 91少妇精拍在线播放 | 免费人成在线观看网站 | 免费在线观看污网站 | 色视频在线观看 | 97在线视频观看 | 国产精品久久久久久爽爽爽 | 国产 视频 高清 免费 | 天堂久色| 欧美成人69av | 亚洲精品久久久久中文字幕二区 | 国色天香永久免费 | 国产日韩欧美在线影视 | 成人v| 国产婷婷色 | 国产午夜三级一二三区 | 天天操天天曰 | 91成人精品一区在线播放69 | 六月久久婷婷 | 五月在线视频 | 欧美午夜理伦三级在线观看 | 99精品视频在线观看视频 | 一区二区三区四区不卡 | 天堂在线视频中文网 | 欧美激情精品久久 | 天天干天天干天天色 | 成人性生交大片免费观看网站 | 婷婷国产精品 | 网站在线观看日韩 | 国内免费久久久久久久久久久 | 麻豆av一区二区三区在线观看 | 亚洲免费在线 | 久久久久久久国产精品 | 日本中文字幕网址 | 福利二区视频 | 91精品人成在线观看 |