我使用LibGDX制作游戏,但我遇到了问题: 如何让精灵从一个标记为点击的位置移动到另一个也通过点击标记的位置?我只需要流畅的动画。
这是我已经完成的代码: 实现AppListener和InputListener的主要应用程序。
public class LGame implements ApplicationListener {
public static Field field;
private SpriteBatch bat;
private Listener listener;
@Override
public void create() {
field = new Field();
bat = new SpriteBatch();
listener = new Listener();
Gdx.input.setInputProcessor(listener);
}
@Override
public void render() {
bat.begin();
bat.draw(field.getTexture(), 0, 0);
for(int i = 0; i <= 31; i++)
if(!field.getFigure(i).isEaten())
bat.draw(field.getFigure(i).getTexture(), field.getFigure(i).getPosX()*64, field.getFigure(i).getPosY()*64);
bat.end();
}
&#34;渲染&#34;方法迭代收集&#34;字段&#34;在场景中包含对象的地方。
public class Listener implements InputProcessor {
private int inX;
private int inY;
private int toMove = 32;
private Boolean isWhiteTurn = true;
@Override
public boolean touchDown(int arg0, int arg1, int arg2, int arg3) {
inX = arg0 / 64;
inY = (512 - arg1) / 64;
if(toMove == 32){
if(LGame.field.poll(inX, inY) != 32 && LGame.field.getFigure(LGame.field.poll(inX, inY)).isWhite == isWhiteTurn ){
toMove = LGame.field.poll(inX, inY);
}
}else{
if(LGame.field.poll(inX, inY) != 32){
if(LGame.field.getFigure(toMove).isMoveRight(inX, inY)){
LGame.field.eatFigure(LGame.field.poll(inX, inY));
LGame.field.setFigurePos(inX, inY, toMove);
isWhiteTurn = !isWhiteTurn;
toMove = 32;
}else{
toMove = 32;
}
}else{
if(LGame.field.getFigure(toMove).isMoveRight(inX, inY)){
LGame.field.setFigurePos(inX, inY, toMove);
isWhiteTurn = !isWhiteTurn;
toMove = 32;
}else{
toMove = 32;
}
}
}
return false;
}
&#34;触&#34;鼠标点击时调用方法;我已经完成了改变对象位置的工作,但我需要为这种改变设置动画。