最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android使用libgdx實現(xiàn)模擬方向鍵控制角色移動的方法

 更新時間:2015年12月29日 14:45:56   作者:q757989418  
這篇文章主要介紹了Android使用libgdx實現(xiàn)模擬方向鍵控制角色移動的方法,實例分析了Android中使用libgdx框架實現(xiàn)響應(yīng)方向鍵的技巧,適用于Android游戲開發(fā)領(lǐng)域,需要的朋友可以參考下

本文實例講述了Android使用libgdx實現(xiàn)模擬方向鍵控制角色移動的方法。分享給大家供大家參考,具體如下:

package com.demo;
import android.os.Bundle;
import com.badlogic.gdx.backends.android.AndroidApplication;
//Libgdx的Texture與Sprite使用
public class LibgdxActivity extends AndroidApplication {
  public void onCreate(Bundle bundle) {
    super.onCreate(bundle);
    // 初始化游戲屏幕,并設(shè)置是否支持GLES 2.0,如果您對向下兼容沒什么需要選擇true即可(2.1以上),否則選擇false。
//   initialize(new FirstGame(), true);
    initialize(new Box2DDemo(), true);
  }
}

package com.demo;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.scenes.scene2d.Actor;
public class FirstActor extends Actor{
  private Texture texture;
  @Override
  public void draw(SpriteBatch batch, float arg1) {
    batch.draw(texture, this.x, this.y);
  }
  @Override
  public Actor hit(float arg0, float arg1) {
    if (x > 0 && y > 0 && this.height > y && this.width > x) {
      return this;
    } else {
      return null;
    }
  }
  @Override
  public boolean touchDown(float arg0, float arg1, int arg2) {
    // TODO Auto-generated method stub
    return false;
  }
  @Override
  public void touchDragged(float arg0, float arg1, int arg2) {
    // TODO Auto-generated method stub
  }
  @Override
  public void touchUp(float arg0, float arg1, int arg2) {
    // TODO Auto-generated method stub
  }
  public FirstActor(String name) {
    super(name);
    texture = new Texture(Gdx.files.internal("bt.png"));
    this.height = texture.getHeight();
    this.width = texture.getWidth();
  }
}

package com.demo;
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.Texture;
import com.badlogic.gdx.graphics.g2d.NinePatch;
import com.badlogic.gdx.scenes.scene2d.Actor;
import com.badlogic.gdx.scenes.scene2d.Stage;
import com.badlogic.gdx.scenes.scene2d.ui.Button;
import com.badlogic.gdx.scenes.scene2d.ui.ClickListener;
import com.badlogic.gdx.scenes.scene2d.ui.Button.ButtonStyle;
class FirstGame implements ApplicationListener,ClickListener {
  private static String UP = "up";
  private static String DOWN = "down";
  private static String LEFT = "left";
  private static String RIGHT = "right";
  //舞臺
  private Stage stage;
  //演員
  private Actor firstActor;
  private Texture texture;
  private Button buttonUp,buttonDown,buttonLeft,buttonRight;
  private NinePatch patch1, patch2;
  @Override
  public void create() {
    stage = new Stage(Gdx.graphics.getWidth(), Gdx.graphics.getHeight(), true);
    firstActor = new FirstActor("renwu");
    buttonUp = initButton(UP,40,80);
    buttonDown = initButton(DOWN,40,0);
    buttonLeft = initButton(LEFT,0,40);
    buttonRight = initButton(RIGHT,80,40);
    buttonUp.setClickListener(this);
    buttonDown.setClickListener(this);
    buttonLeft.setClickListener(this);
    buttonRight.setClickListener(this);
    stage.addActor(firstActor);
    stage.addActor(buttonUp);
    stage.addActor(buttonDown);
    stage.addActor(buttonLeft);
    stage.addActor(buttonRight);
    Gdx.input.setInputProcessor(stage);
  }
  @Override
  public void render() {
    // 清屏
    Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
    stage.act(Gdx.graphics.getDeltaTime());
    stage.draw();
  }
  @Override
  public void dispose() {
    // 釋放占用的資源
    stage.dispose();
  }
  @Override
  public void resume() {
  }
  @Override
  public void pause() {
  }
  @Override
  public void resize(int width, int height) {
  }
  public Button initButton(String name,int x,int y){
    if(name.equals(UP)){
      texture = new Texture(Gdx.files.internal("up_alt.png"));
    }else if(name.equals(DOWN)){
      texture = new Texture(Gdx.files.internal("down_alt.png"));
    }else if(name.equals(LEFT)){
      texture = new Texture(Gdx.files.internal("back_alt.png"));
    }else if(name.equals(RIGHT)){
      texture = new Texture(Gdx.files.internal("forward_alt.png"));
    }
    patch1 = new NinePatch(texture, 0, 0, 0, 0);
    Button button = new Button(new ButtonStyle(patch1, patch1, patch1, 0f, 0f, 0f, 0f, null, null), name);
    button.x = x;
    button.y = y;
    button.width = 32;
    button.height = 32;
    return button;
  }
  @Override
  public void click(Actor button) {
    if(button.equals(buttonUp)){
      Actor actor = button.parent.findActor("renwu");;
      actor.y += 10;
      Log.i("touch", "up");
    }else if(button.equals(buttonDown)){
      Actor actor = button.parent.findActor("renwu");;
      actor.y -= 10;
      Log.i("touch", "down");
    }else if(button.equals(buttonLeft)){
      Actor actor = button.parent.findActor("renwu");;
      actor.x -= 10;
      Log.i("touch", "left");
    }else if(button.equals(buttonRight)){
      Actor actor = button.parent.findActor("renwu");;
      actor.x += 10;
      Log.i("touch", "right");
    }
  }
}

希望本文所述對大家Android程序設(shè)計有所幫助。

相關(guān)文章

  • Android Material加載進(jìn)度條制作代碼

    Android Material加載進(jìn)度條制作代碼

    這篇文章主要為大家詳細(xì)介紹了AndroidMaterial加載進(jìn)度條的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • Android SpringAnimation彈性動畫解析

    Android SpringAnimation彈性動畫解析

    這篇文章主要為大家詳細(xì)介紹了Android SpringAnimation彈性動畫,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • Android 5.0及以上編程實現(xiàn)屏幕截圖功能的方法

    Android 5.0及以上編程實現(xiàn)屏幕截圖功能的方法

    這篇文章主要介紹了Android 5.0及以上編程實現(xiàn)屏幕截圖功能的方法,結(jié)合實例形式分析了Android5.0以上實現(xiàn)截圖功能的相關(guān)類、函數(shù)及權(quán)限控制等操作技巧,需要的朋友可以參考下
    2018-01-01
  • Android單項綁定MVVM項目模板的方法

    Android單項綁定MVVM項目模板的方法

    這篇文章主要給大家介紹了關(guān)于Android單項綁定MVVM項目模板的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對各位Android開發(fā)者們具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Android shell命令行中過濾adb logcat輸出的幾種方法

    Android shell命令行中過濾adb logcat輸出的幾種方法

    本文主要介紹Android shell命令行中過濾adb logcat輸出的方法,這里整理了幾種方法,并詳細(xì)的說明,有需要的朋友可以參考下
    2016-08-08
  • Android ViewPager實現(xiàn)無限循環(huán)的實例

    Android ViewPager實現(xiàn)無限循環(huán)的實例

    這篇文章主要介紹了Android ViewPager實現(xiàn)無限循環(huán)的實例的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • Android開發(fā)之在程序中時時獲取logcat日志信息的方法(附demo源碼下載)

    Android開發(fā)之在程序中時時獲取logcat日志信息的方法(附demo源碼下載)

    這篇文章主要介紹了Android開發(fā)之在程序中時時獲取logcat日志信息的方法,結(jié)合實例形式較為詳細(xì)的分析了實時獲取logcat日志的原理、步驟與相關(guān)實現(xiàn)技巧,并附帶相應(yīng)的demo源碼供讀者下載參考,需要的朋友可以參考下
    2016-02-02
  • android自定義加減按鈕

    android自定義加減按鈕

    這篇文章主要為大家詳細(xì)介紹了android自定義加減按鈕,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • Android使用Handler和Message更新UI

    Android使用Handler和Message更新UI

    這篇文章主要介紹了Android使用Handler和Message更新UI的相關(guān)資料,感興趣的小伙伴們可以參考一下
    2016-07-07
  • 詳解Android 掃描條形碼(Zxing插件)

    詳解Android 掃描條形碼(Zxing插件)

    本篇文章主要對Android 掃描條形碼(Zxing插件)進(jìn)行實例解析,相信對大家的學(xué)習(xí)會有很好的幫助,需要的朋友一起來看下吧
    2016-12-12

最新評論

阜新| 元阳县| 滨州市| 罗源县| 东安县| 彭山县| 平昌县| 临夏县| 潢川县| 贵州省| 鄂伦春自治旗| 宜黄县| 城口县| 汉川市| 郎溪县| 正镶白旗| 手游| 鹿邑县| 黑龙江省| 定州市| 来凤县| 松原市| 南涧| 自治县| 年辖:市辖区| 五莲县| 呼图壁县| 西安市| 司法| 集安市| 喜德县| 临西县| 林西县| 扎兰屯市| 马尔康县| 泰州市| 商水县| 柘荣县| 南丰县| 寿阳县| 曲麻莱县|