如何操作 LibGDX 中的角色和对象
How to manipulate characters and objects in LibGDX
我是 LibGDX 的编程新手,目前正在开发一款简单的街机游戏。我想知道我应该如何正确地创建一个只需要 运行 并跳跃的主角?我应该为他创建一个新的 class 并实现一些方法吗?至于现在,我只有两个 classes,我处理其他游戏状态的 MyGame 和我绘制背景和对象的 PlayState。
只需创建一个Sprite,即可轻松驾驭
SpriteBatch batch;
Sprite sprite;//Main character
@Override
public void create(){
batch = new SpriteBatch();
sprite = new Sprite(new Texture(Gdx.files.internal("data/text.png")));
}
@Override
public void render(){
//Add logic to control the main character...
batch.begin();
sprite.draw(batch);
batch.end();
}
如果您想创建更多方法,您也可以尝试扩展 Actor class,这样它就可以重复使用。
public class MyActor extends Actor{
Texture texture = new Texture(Gdx.files.internal("data/tex.png"));
float actorX = 0, actorY = 0;
public MyActor(){
addListener(new InputListener(){//Receive events
public boolean touchDown (InputEvent event, float x, float y, int pointer, int button){//Check your run and jump buttons
//...
}
}
@Override
public void draw(Batch batch, float alpha){//Draw it
batch.draw(texture,actorX,actorY);
}
@Override
public void act(float delta){//Update it
}
}
我是 LibGDX 的编程新手,目前正在开发一款简单的街机游戏。我想知道我应该如何正确地创建一个只需要 运行 并跳跃的主角?我应该为他创建一个新的 class 并实现一些方法吗?至于现在,我只有两个 classes,我处理其他游戏状态的 MyGame 和我绘制背景和对象的 PlayState。
只需创建一个Sprite,即可轻松驾驭
SpriteBatch batch;
Sprite sprite;//Main character
@Override
public void create(){
batch = new SpriteBatch();
sprite = new Sprite(new Texture(Gdx.files.internal("data/text.png")));
}
@Override
public void render(){
//Add logic to control the main character...
batch.begin();
sprite.draw(batch);
batch.end();
}
如果您想创建更多方法,您也可以尝试扩展 Actor class,这样它就可以重复使用。
public class MyActor extends Actor{
Texture texture = new Texture(Gdx.files.internal("data/tex.png"));
float actorX = 0, actorY = 0;
public MyActor(){
addListener(new InputListener(){//Receive events
public boolean touchDown (InputEvent event, float x, float y, int pointer, int button){//Check your run and jump buttons
//...
}
}
@Override
public void draw(Batch batch, float alpha){//Draw it
batch.draw(texture,actorX,actorY);
}
@Override
public void act(float delta){//Update it
}
}