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

Android游戲引擎libgdx使用教程4:舞臺(tái)和演員的游戲?qū)嵗?/h1>

移動(dòng)開(kāi)發(fā) Android
演員是游戲設(shè)計(jì)中常用的一個(gè)對(duì)象,它接受舞臺(tái)的統(tǒng)一管理,擁有一些公共的事件,比如觸摸,點(diǎn)擊,但是同時(shí)還有自身的響應(yīng)和屬性;而舞臺(tái)就是容納演員的場(chǎng)所。它統(tǒng)一管理所有演員,接受輸入,同時(shí)提供一個(gè)方便的框架操作演員的時(shí)間變化。

大家先要有舞臺(tái)和演員的概念,下面通過(guò)一個(gè)游戲截圖來(lái)說(shuō)明:

Android游戲引擎libgdx使用教程4:舞臺(tái)和演員的游戲?qū)嵗? /></p>
<p>請(qǐng)仔細(xì)觀(guān)察圖片中的元素,有些東西是不能動(dòng),有些可以動(dòng),有些有特效,有些沒(méi)有,有各種圖片,但是其實(shí)它們都可以統(tǒng)一稱(chēng)為演員(Actor)。圖中用框標(biāo)出的就是演員。而整個(gè)游戲界面就是我們的舞臺(tái)。</p>
<p>演員是游戲設(shè)計(jì)中常用的一個(gè)對(duì)象,它接受舞臺(tái)的統(tǒng)一管理,擁有一些公共的事件,比如觸摸,點(diǎn)擊,但是同時(shí)還有自身的響應(yīng)和屬性;而舞臺(tái)就是容納演員的場(chǎng)所。它統(tǒng)一管理所有演員,接受輸入,同時(shí)提供一個(gè)方便的框架操作演員的時(shí)間變化。</p>
<p>Stage類(lèi)</p>
<p>我們來(lái)看一下Stage類(lèi):</p>
<p>       protected final Group root;</p>
<p>       protected final SpriteBatch batch;</p>
<p>       protected Camera camera;</p>
<p>它擁有一個(gè)Group,一個(gè)SpriteBatch,還有一個(gè)相機(jī)。</p>
<p>SpriteBatch我們?cè)谇皫灼f(shuō)過(guò),這里就不再重復(fù)了。</p>
<p>Group是一個(gè)類(lèi),用于容納和控制演員。但是這里要注意Group本身其實(shí)也是繼承自Actor。</p>
<p>相機(jī)我們這里跳過(guò),以后再說(shuō),可以暫時(shí)理解成一個(gè)控制觀(guān)察視角和指標(biāo)轉(zhuǎn)化的工具。</p>
<p>當(dāng)我們擁有一個(gè)演員后就可以調(diào)用addActor方法加入舞臺(tái)。</p>
<p>舞臺(tái)可以獲取輸入,但是需要設(shè)置。</p>
<p>       Gdx.input.setInputProcessor(stage);</p>
<p>舞臺(tái)和演員實(shí)例分享</p>
<p>下面來(lái)個(gè)列子,控制一個(gè)人物前進(jìn)。</p>
<p style=Android游戲引擎libgdx使用教程4:舞臺(tái)和演員的游戲?qū)嵗? /></p>
<p>控制人物的按鈕:</p>
<p style=Android游戲引擎libgdx使用教程4:舞臺(tái)和演員的游戲?qū)嵗? /></p>
<p>將所需的圖片放到assert中:</p>
<p style=Android游戲引擎libgdx使用教程4:舞臺(tái)和演員的游戲?qū)嵗? /></p>
<p>新建三個(gè)類(lèi):</p>
<p>FirstGame,實(shí)現(xiàn)接口ApplicationListener</p>
<p>FirstActor,繼承Actor</p>
<p>NarrowButton,繼承Actor</p>
<p>先看一下FirstGame</p>
<p>聲明一個(gè)Stage,然后實(shí)例化FirstActor和NarrowButton,將二者加入舞臺(tái)中,最后設(shè)置輸入響應(yīng)為Stage。</p>
<pre><ol class=

  • package com.cnblogs.htynkn.listener;     
  • import java.util.Date;     
  • import java.util.Random;     
  • import javax.microedition.khronos.opengles.GL;     
  • import android.util.Log;     
  • import com.badlogic.gdx.ApplicationListener;     
  • import com.badlogic.gdx.Gdx;     
  • import com.badlogic.gdx.graphics.GL10;     
  • import com.badlogic.gdx.graphics.g2d.BitmapFont;     
  • import com.badlogic.gdx.scenes.scene2d.Stage;     
  • import com.cnblogs.htynkn.domain.FirstActor;     
  • import com.cnblogs.htynkn.domain.NarrowButton;     
  • public class FirstGame implements ApplicationListener {     
  • private Stage stage;     
  • private FirstActor firstActor;     
  • private NarrowButton button;     
  • @Override     
  • public void create() {     
  • stage = new Stage(Gdx.graphics.getWidth(), Gdx.graphics.getHeight(),     
  • true);     
  • firstActor = new FirstActor("renwu");     
  • button = new NarrowButton("narrow");     
  • stage.addActor(firstActor);     
  • stage.addActor(button);     
  • Gdx.input.setInputProcessor(stage);     
  • }     
  • @Override     
  • public void dispose() {     
  • stage.dispose();     
  • }     
  • @Override     
  • public void pause() {     
  • // TODO Auto-generated method stub     
  • }     
  • @Override     
  • public void render() {     
  • Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);     
  • stage.act(Gdx.graphics.getDeltaTime());     
  • stage.draw();     
  • }     
  • @Override     
  • public void resize(int width, int height) {     
  • // TODO Auto-generated method stub     
  • }     
  • @Override     
  • public void resume() {     
  • // TODO Auto-generated method stub     
  • }     
  • }   
  • 再看一下FirstActor。

    聲明一個(gè)Texture用于繪制。在構(gòu)造方法中獲取到高度和寬度,以便于后期的hit時(shí)間判斷。

    1. package com.cnblogs.htynkn.domain;     
    2. import com.badlogic.gdx.Gdx;     
    3. import com.badlogic.gdx.graphics.Texture;     
    4. import com.badlogic.gdx.graphics.g2d.SpriteBatch;     
    5. import com.badlogic.gdx.scenes.scene2d.Actor;     
    6. public class FirstActor extends Actor {     
    7. Texture texture;     
    8. @Override     
    9. public void draw(SpriteBatch batch, float parentAlpha) {     
    10. batch.draw(texture, this.x, this.y);     
    11. }     
    12. @Override     
    13. public Actor hit(float x, float y) {     
    14. if (x > 0 && y > 0 && this.height > y && this.width > x) {     
    15. return this;     
    16. else {     
    17. return null;     
    18. }     
    19. }     
    20. @Override     
    21. public boolean touchDown(float x, float y, int pointer) {     
    22. // TODO Auto-generated method stub     
    23. return false;     
    24. }     
    25. @Override     
    26. public void touchDragged(float x, float y, int pointer) {     
    27. // TODO Auto-generated method stub     
    28. }     
    29. @Override     
    30. public void touchUp(float x, float y, int pointer) {     
    31. // TODO Auto-generated method stub     
    32. }     
    33. public FirstActor(String name) {     
    34. super(name);     
    35. texture = new Texture(Gdx.files.internal("actor1.gif"));     
    36. this.height = texture.getHeight();     
    37. this.width = texture.getWidth();     
    38. }     
    39. }   

    NarrowButton中代碼繪制部分和上面的以下,主要是有個(gè)點(diǎn)擊后控制人物行動(dòng)的問(wèn)題。

    修改touchDown事件:

    通過(guò)Group獲取到FirstActor,控制x值。

    1. public boolean touchDown(float x, float y, int pointer) {     
    2. Actor actor = this.parent.findActor("renwu");     
    3. actor.x += 10;     
    4. return false;     
    5. }   

    效果:

    Android游戲引擎libgdx使用教程4:舞臺(tái)和演員的游戲?qū)嵗? /></p>
<p>到此為止一個(gè)最簡(jiǎn)單的人物控制我們已經(jīng)實(shí)現(xiàn)了。但是這個(gè)有實(shí)例還有很多可以改進(jìn)的地方,比如方向按鈕沒(méi)有點(diǎn)擊效果,人物沒(méi)有移動(dòng)效果。</p>
<p>我們可以使用Animation來(lái)實(shí)現(xiàn)。添加一張圖片:</p>
<p style=Android游戲引擎libgdx使用教程4:舞臺(tái)和演員的游戲?qū)嵗? /></p>
<p>具體的原理我們看一下Animation類(lèi):</p>
<pre><ol class=

  • public class Animation {     
  • final TextureRegion[] keyFrames;     
  • public float frameDuration;     
  • /** Constructor, storing the frame duration and key frames.    
  • *    
  • * @param frameDuration the time between frames in seconds.    
  • * @param keyFrames the {@link TextureRegion}s representing the frames. */     
  • public Animation (float frameDuration, List keyFrames) {     
  • this.frameDuration = frameDuration;     
  • this.keyFrames = new TextureRegion[keyFrames.size()];     
  • for(int i = 0, n = keyFrames.size(); i < n; i++) {     
  • this.keyFrames[i] = (TextureRegion)keyFrames.get(i);     
  • }     
  • }     
  • /** Constructor, storing the frame duration and key frames.    
  • *    
  • * @param frameDuration the time between frames in seconds.    
  • * @param keyFrames the {@link TextureRegion}s representing the frames. */     
  • public Animation (float frameDuration, TextureRegion... keyFrames) {     
  • this.frameDuration = frameDuration;     
  • this.keyFrames = keyFrames;     
  • }     
  • /** Returns a {@link TextureRegion} based on the so called state time. This is the amount of seconds an object has spent in the    
  • * state this Animation instance represents, e.g. running, jumping and so on. The mode specifies whether the animation is    
  • * looping or not.    
  • * @param stateTime the time spent in the state represented by this animation.    
  • * @param looping whether the animation is looping or not.    
  • * @return the TextureRegion representing the frame of animation for the given state time. */     
  • public TextureRegion getKeyFrame (float stateTime, boolean looping) {     
  • int frameNumber = (int)(stateTime / frameDuration);     
  • if (!looping) {     
  • frameNumber = Math.min(keyFrames.length - 1, frameNumber);     
  • else {     
  • frameNumber = frameNumber % keyFrames.length;     
  • }     
  • return keyFrames[frameNumber];     
  • }     
  • }   
  • 可以看出所謂的動(dòng)畫(huà)其實(shí)是一張一張的圖片不斷切換(其實(shí)所有的動(dòng)畫(huà)都是這個(gè)樣子的)。

    我們構(gòu)造一個(gè)圖片列表然后根據(jù)事件變動(dòng)不停取出,重新繪制就形成動(dòng)畫(huà)了。

    注意一下傳入的時(shí)間和圖片列表大小的問(wèn)題,修改FirstActor代碼如下:

    1. package com.cnblogs.htynkn.domain;     
    2. import com.badlogic.gdx.Gdx;     
    3. import com.badlogic.gdx.graphics.Texture;     
    4. import com.badlogic.gdx.graphics.g2d.Animation;     
    5. import com.badlogic.gdx.graphics.g2d.SpriteBatch;     
    6. import com.badlogic.gdx.graphics.g2d.TextureRegion;     
    7. import com.badlogic.gdx.scenes.scene2d.Actor;     
    8. public class FirstActor extends Actor {     
    9. Texture texture1;     
    10. Texture texture2;     
    11. Animation animation;     
    12. TextureRegion[] walksFrame;     
    13. float stateTime;     
    14. @Override   
    15. public void draw(SpriteBatch batch, float parentAlpha) {     
    16. stateTime += Gdx.graphics.getDeltaTime();     
    17. TextureRegion currentFrame = animation.getKeyFrame(stateTime, true);     
    18. batch.draw(currentFrame, this.x, this.y);     
    19. }     
    20. @Override   
    21. public Actor hit(float x, float y) {     
    22. Gdx.app.log("INFO", x + " " + this.width);     
    23. if (x > 0 && y > 0 && this.height > y && this.width > x) {     
    24. return this;     
    25. else {     
    26. return null;     
    27. }     
    28. }     
    29. @Override   
    30. public boolean touchDown(float x, float y, int pointer) {     
    31. // TODO Auto-generated method stub     
    32. return false;     
    33. }     
    34. @Override   
    35. public void touchDragged(float x, float y, int pointer) {     
    36. // TODO Auto-generated method stub     
    37. }     
    38. @Override   
    39. public void touchUp(float x, float y, int pointer) {     
    40. // TODO Auto-generated method stub     
    41. }     
    42. public FirstActor(String name) {     
    43. super(name);     
    44. texture1 = new Texture(Gdx.files.internal("actor1.gif"));     
    45. texture2 = new Texture(Gdx.files.internal("actor2.gif"));     
    46. this.height = texture1.getHeight();     
    47. this.width = texture1.getWidth();     
    48. TextureRegion region1;     
    49. TextureRegion region2;     
    50. region1 = new TextureRegion(texture1);     
    51. region2 = new TextureRegion(texture2);     
    52. walksFrame = new TextureRegion[30];     
    53. for (int i = 0; i < 30; i++) {     
    54. if (i % 2 == 0) {     
    55. walksFrame[i] = region1;     
    56. else {     
    57. walksFrame[i] = region2;     
    58. }     
    59. }     
    60. animation = new Animation(0.25f, walksFrame);     
    61. }     
    62. }   

    效果:

    Android游戲引擎libgdx使用教程4:舞臺(tái)和演員的游戲?qū)嵗? /></p>
<p>這里注意一下,為什么我們要Texture轉(zhuǎn)為T(mén)extureRegion。這是因?yàn)樵趯?shí)際開(kāi)發(fā)中的圖片是集成在一起的,比如所有角色要用的圖片都是放在一張圖里,然后分割截取的,對(duì)應(yīng)的輔助方法TextureRegion.split。</p>
<p>另外我們可以發(fā)現(xiàn)NarrowButton和FirstActor中有大量代碼重復(fù)了,可能有朋友覺(jué)得應(yīng)該提取一下,其實(shí)libgdx已經(jīng)幫我們做了,可以參考</p>
<p style=Android游戲引擎libgdx使用教程4:舞臺(tái)和演員的游戲?qū)嵗? /></p>
<p>圖片分享:</p>
<p>這里有一些常用的UI控件,估計(jì)下一篇可以講到。</p></div> <div   id=責(zé)任編輯:閆佳明 來(lái)源: jizhuomi

    相關(guān)推薦

    2013-12-06 10:31:14

    Android游戲引擎libgdx教程

    2013-12-04 17:27:10

    Android游戲引擎libgdx教程

    2013-12-04 17:14:57

    Android游戲引擎libgdx教程

    2013-12-04 13:30:45

    Android游戲引擎libgdx教程

    2013-12-06 10:12:49

    Android游戲引擎libgdx教程

    2013-12-06 09:59:53

    Android游戲引擎libgdx教程

    2013-12-06 10:22:42

    Android游戲引擎libgdx教程

    2013-12-06 10:35:28

    Android游戲引擎libgdx教程

    2013-12-04 16:07:27

    Android游戲引擎libgdx教程

    2013-12-04 16:21:02

    Android游戲引擎libgdx教程

    2011-07-18 10:53:09

    2011-07-18 11:07:12

    iPhone 游戲 引擎

    2011-07-18 12:29:10

    2011-07-18 11:39:58

    iPhone 游戲 引擎

    2011-07-18 11:23:29

    iPhone 游戲 動(dòng)畫(huà)

    2011-12-12 13:58:11

    TinyCoiOSAndroid

    2013-04-19 01:42:02

    2014-07-15 10:34:14

    Android游戲引擎

    2013-05-20 15:42:22

    2011-05-31 15:45:38

    Android 游戲引擎 開(kāi)源
    點(diǎn)贊
    收藏

    51CTO技術(shù)棧公眾號(hào)

    九九热爱视频精品视频| 免费毛片b在线观看| 国产精品资源在线看| 色综合久久精品亚洲国产| 国产69视频在线观看| heyzo在线| a亚洲天堂av| 国产97在线播放| 国产稀缺精品盗摄盗拍| 欧美黑白配在线| 欧美在线三级电影| 超碰超碰超碰超碰超碰| 视频一区二区三区国产| 麻豆精品视频在线观看| 久久久久久高潮国产精品视| japanese中文字幕| а√在线中文网新版地址在线| 国产精品一区二区久激情瑜伽 | 国内精品小视频在线观看| 天天插天天射天天干| 日本美女一区| 亚洲一区二区在线视频| 成人在线免费观看一区| 国产一区二区三区在线视频观看| 中文字幕日本一区| 天天综合天天综合色| 日本特级黄色大片| 精品人妻一区二区三区浪潮在线| 五月天久久久| 亚洲欧洲午夜一线一品| 色综合夜色一区| 欧美一区二区.| 欧美爱爱小视频| 不卡中文字幕| 亚洲欧美日韩国产中文| 18禁免费无码无遮挡不卡网站| 国产 欧美 自拍| 精品夜夜嗨av一区二区三区| 欧美巨猛xxxx猛交黑人97人| 日韩av片在线免费观看| 狂野欧美xxxx韩国少妇| 亚洲高清视频中文字幕| 亚洲自拍偷拍一区二区三区| 国产高清av在线| 不卡电影一区二区三区| 91麻豆蜜桃| 91禁在线观看| 精品一区二区三区蜜桃| 国产精品成人一区二区三区吃奶| 青青操国产视频| 国产精品精品| 俺去亚洲欧洲欧美日韩| 丁香六月激情综合| 热久久天天拍国产| 最新国产精品拍自在线播放 | 国产欧美日韩伦理| 国产精品怡红院| 99热在线精品观看| 国内精品视频一区| 亚洲欧美在线视频免费| 宅男噜噜噜66一区二区 | 可以看的av网址| 91精品国产自产观看在线| 欧美日韩国产综合一区二区三区 | 成年人看的免费视频| 91亚洲无吗| 精品国产一区二区三区忘忧草 | 国产一区二区不卡老阿姨| 国产精品丝袜一区二区三区| 国产情侣在线视频| 亚洲一区久久| 日本久久中文字幕| 日韩熟女一区二区| 免费一级片91| 奇米4444一区二区三区 | 香蕉久久夜色精品国产使用方法| 9191成人精品久久| 色综合五月婷婷| 99re6热只有精品免费观看| 亚洲国产精品va在线看黑人| 中文字幕在线视频精品| 麻豆视频久久| 亚洲黄页网在线观看| 在线观看国产免费视频| 神马电影久久| 久久在线免费视频| 国产真人真事毛片| 久久激情网站| 国产精品嫩草影院久久久| 国产精品视频123| 蜜臀久久99精品久久久画质超高清| 91av免费观看91av精品在线| 欧美性猛交xxxx乱大交hd| 麻豆成人久久精品二区三区小说| 国产成人拍精品视频午夜网站| 久久久久无码精品国产| 美日韩精品视频| 成人夜晚看av| 午夜国产在线观看| 国产精品福利一区二区| 欧美这里只有精品| 高清av一区| 亚洲电影免费观看高清| eeuss中文字幕| 亚洲二区在线| 国产一区二区视频在线观看| 三级视频在线看| 国产精品久久久久精k8| 男人和女人啪啪网站| 白嫩亚洲一区二区三区| 日韩毛片在线观看| 欧美日韩免费做爰视频| 青娱乐精品视频| 国产一区二区三区四区五区加勒比| 亚洲精品国产一区二| 久久精品视频一区二区| 神马影院我不卡| 国产精品69xx| 在线播放91灌醉迷j高跟美女| 天堂在线精品视频| 国产精品久av福利在线观看| 亚洲高清久久久久久| 久久视频一区二区三区| 国产模特精品视频久久久久| 国产91在线高潮白浆在线观看| 欧美一级黄视频| 成人av午夜电影| 二级片在线观看| 天然素人一区二区视频| 亚洲精品国精品久久99热一| 精品国产av无码| 在线播放精品| 2019国产精品视频| 少妇精品视频一区二区| 久久免费精品国产久精品久久久久| 日产精品一线二线三线芒果| av中文字幕在线观看第一页| 日韩精品一区二区三区在线播放| 东京热av一区| 中文字幕日韩欧美精品高清在线| 久久久久久亚洲| 男人天堂2024| 91免费看`日韩一区二区| 日本免费一区二区三区| 午夜欧美激情| 日韩激情视频在线| 午夜精品久久久久久久久久久久久蜜桃| 免费日韩av片| 久久精品五月婷婷| 99thz桃花论族在线播放| 精品久久国产老人久久综合| 少妇人妻好深好紧精品无码| 免费中文字幕日韩欧美| 欧美日韩日本网| 超碰国产一区| 亚洲少妇中文在线| 波多野结衣在线电影| 国产精品一区二区在线观看网站| 欧美一区二区影视| 日韩免费福利视频| 亚洲性无码av在线| 亚洲永久精品一区| 国产精品网曝门| 色噜噜狠狠永久免费| 围产精品久久久久久久| 91视频最新| 国产一线二线在线观看| 欧美精品乱码久久久久久| 在线免费观看污视频| 亚洲va在线| 亚洲最大av在线| 日本性爱视频在线观看| 日韩成人免费视频| 国产精品免费无遮挡无码永久视频| 北岛玲一区二区三区四区| 精品视频免费在线播放| 国产欧美一区二区精品久久久| 欧美高清第一页| 婷婷伊人综合中文字幕| 欧洲精品一区二区三区在线观看| 一级特黄a大片免费| 久久国产日韩| 亚洲成人动漫在线| 国产精品18hdxxxⅹ在线| 日本成人在线视频网址| 色网站在线看| 亚洲福利在线播放| 伊人色综合久久久| 亚洲自拍欧美精品| 国产精成人品免费观看| 国产成人免费在线观看| 久久无码高潮喷水| 欧美激情理论| 久久精品人成| 蜜桃在线一区| 国产成人精品日本亚洲专区61| 飘雪影视在线观看免费观看| 欧美一区二区三区小说| 国产黄色免费观看| 亚洲日韩欧美一区二区在线| 狠狠人妻久久久久久综合蜜桃| 国精品一区二区| 日本免费高清一区二区| 成人av影音| 国产日韩av在线播放| 高端美女服务在线视频播放| 久久久国产一区| 青青草在线免费观看| 日韩美女天天操| 久草国产在线视频| 中文字幕不卡一区| 亚洲精品在线视频免费观看| 国产高清无密码一区二区三区| 视色,视色影院,视色影库,视色网 日韩精品福利片午夜免费观看 | 欧美另类交人妖| 国产成人久久精品77777综合 | 欧美少妇一区| 中文在线综合| 国产综合色香蕉精品| 中文字幕这里只有精品| 欧美激情女人20p| 色网站在线看| 色婷婷久久一区二区| 青青草观看免费视频在线| 精品国产a毛片| 国产视频在线免费观看| 欧美日韩亚州综合| 9i精品福利一区二区三区| 亚洲成a人片综合在线| 欧美xxxxx精品| 久久久噜噜噜久久狠狠50岁| 欧美视频在线观看视频| 亚洲成人tv| 这里只有精品66| 成人午夜av| 日日夜夜精品网站| 亚洲性视频大全| 久久久久久国产精品免费免费| 性欧美videohd高精| 1769国内精品视频在线播放| bl在线肉h视频大尺度| 国产亚洲精品激情久久| 日本天堂在线| 亚洲精品日韩在线| 国产伦子伦对白视频| 精品视频1区2区| 老熟妇一区二区三区啪啪| 色呦呦日韩精品| 中文字幕亚洲高清| 亚洲成a人v欧美综合天堂下载| 免费观看特级毛片| 国产精品视频第一区| 综合 欧美 亚洲日本| 国产精品国产三级国产普通话三级| 久草免费资源站| 日本欧美一区二区在线观看| 黄色三级中文字幕| 在线一区电影| 800av在线免费观看| 色狮一区二区三区四区视频| 综合一区中文字幕| 午夜精品久久| 成年人网站国产| 国产麻豆综合| mm131国产精品| 国产激情视频一区二区在线观看| 久久久国产欧美| 麻豆成人免费电影| 成年人小视频网站| 久久99国产精品久久99果冻传媒| 黄色一级片在线看| 久久xxxx精品视频| 精品999在线| 国产精品一区二区无线| 久久偷拍免费视频| 中文字幕av一区二区三区高| 国产精品白丝喷水在线观看| 欧美激情在线免费观看| 成人欧美一区二区三区黑人一| 久久久久久亚洲综合| 性少妇xx生活| 亚洲一区二区三区四区在线| 国产污视频网站| 欧美一区中文字幕| 伊人网站在线观看| 精品国产不卡一区二区三区| 丁香花免费高清完整在线播放| 日韩一区二区在线观看视频| 日韩在线观看视频一区二区三区| 精品国产伦一区二区三区观看方式 | 色成人在线视频| 国产精品呻吟久久| 国产午夜精品麻豆| 中国av在线播放| 热门国产精品亚洲第一区在线| 麻豆理论在线观看| 国产精品永久免费在线| 国产美女久久| 国产日韩欧美一二三区| 久久久久观看| 一区二区三区久久网| 99国产精品久久久久久久| 久热在线视频观看| 97se亚洲国产综合自在线不卡| 在线观看国产三级| 91免费看`日韩一区二区| 97人妻精品一区二区免费| 亚洲欧美怡红院| 国产一二三四区| 91国偷自产一区二区三区成为亚洲经典| 男人天堂2024| 精品国产露脸精彩对白| 日本美女高清在线观看免费| 欧洲s码亚洲m码精品一区| 盗摄系列偷拍视频精品tp| 国产日韩亚洲精品| 亚洲男女av一区二区| 91日韩视频在线观看| 99精品视频中文字幕| 久久久久久久久久网站| 欧美色网一区二区| 青青草免费在线视频| 91黑丝在线观看| 99精品国产高清一区二区麻豆| 国产一区二区黄色| 你懂的视频一区二区| 91视频这里只有精品| 丰满放荡岳乱妇91ww| 99国产精品无码| 在线亚洲人成电影网站色www| 91 中文字幕| 永久555www成人免费| 大片免费在线观看| 亚洲 日韩 国产第一| 深夜福利一区二区三区| 三年中文高清在线观看第6集| 亚洲经典在线看| 精品国产一二区| 一区二区三区**美女毛片| 五月婷婷开心网| 欧美日韩中字一区| av网站在线免费观看| 日韩av免费网站| 国产免费久久| 欧美午夜性生活| 国产欧美一区二区精品忘忧草| 国产精品白丝喷水在线观看| 777亚洲妇女| h片在线免费| 99在线观看视频网站| 狠狠爱www人成狠狠爱综合网 | 日韩成人在线免费视频| 精品久久久久香蕉网| 美足av综合网| 国严精品久久久久久亚洲影视| 欧美大人香蕉在线| 欧美女同在线观看| 91女人视频在线观看| 99热精品免费| 精品国产在天天线2019| 免费网站成人| 69堂成人精品视频免费| 国内成人在线| 韩国无码一区二区三区精品| 在线欧美小视频| 日本电影全部在线观看网站视频| 欧美亚洲另类激情另类| 国产九一精品| 看看黄色一级片| 亚洲午夜一区二区| 熟妇高潮一区二区高潮| 国产精品草莓在线免费观看| 久久综合另类图片小说| 已婚少妇美妙人妻系列| 99久久精品免费看国产| 国产精品免费精品一区| 视频一区视频二区国产精品| 日韩在线成人| 男人揉女人奶房视频60分 | 国产精品人成电影| 在线一级成人| 五月天激情播播| 亚洲成国产人片在线观看| 成人在线免费看| 亚洲xxxxx| 国产亚洲毛片| 国产稀缺精品盗摄盗拍| 精品夜色国产国偷在线| 欧美成人福利| 日韩一区免费观看| 国产精品一区免费在线观看| 91精品国产闺蜜国产在线闺蜜| 欧美欧美欧美欧美| 美足av综合网| 亚洲午夜在线观看| av在线不卡免费看| 999这里只有精品| 久久视频国产精品免费视频在线| 国产精品一区二区精品| 久草热视频在线观看|