当先锋百科网

首页 1 2 3 4 5 6 7

最近在研究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");
		}
		
	}
}


欢迎大家踊跃讨论