-2
我正在使用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();
}
「渲染」方法迭代集合「場」其中包含場景中的對象。
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;
}
當鼠標點擊時調用「touchDown」方法;我已經改變了對象的位置,但我需要動畫這個變化。
嗨,你能稍微擴大你的問題嗎?包括目前爲止您可能嘗試過的任何代碼都是在代碼塊中進行格式化。 –