国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android使用libgdx實現模擬方向鍵控制角色移動的方法

2020-04-11 11:06:11
字體:
來源:轉載
供稿:網友

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

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);    // 初始化游戲屏幕,并設置是否支持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程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 茌平县| 彭泽县| 闸北区| 凤凰县| 鹰潭市| 图木舒克市| 绵阳市| 昌江| 辉南县| 布尔津县| 乐东| 莱州市| 长泰县| 罗城| 宝兴县| 襄樊市| 河曲县| 德惠市| 贺州市| 通辽市| 秭归县| 洱源县| 肃北| 密山市| 寿光市| 和林格尔县| 都昌县| 定襄县| 庆元县| 磴口县| 富平县| 林西县| 黄平县| 灵寿县| 绥德县| 吉隆县| 海伦市| 屯昌县| 嵊州市| 石泉县| 田东县|