我在集中我的精灵动画时遇到问题,有人可以给我个灯吗?

public void render() {
    Gdx.gl.glClearColor(1, 1, 1, 1);
    Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);

    stateTime += Gdx.graphics.getDeltaTime();
    currentFrame = walkAnimation.getKeyFrame(stateTime, true);



    batch.setProjectionMatrix(cam.combined);
    batch.begin();
    batch.draw(currentFrame, Gdx.graphics.getWidth() / 2 - ((walkSheet.getWidth()/FRAME_COLS) / 2), Gdx.graphics.getHeight() / 2 - ((walkSheet.getHeight()/FRAME_ROWS) / 2), width / 2, height / 4);


我的动画正在向左画几个像素。

最佳答案

对于x头寸,您有-

Gdx.graphics.getWidth() / 2 - ((walkSheet.getWidth()/FRAME_COLS) / 2)


如果每个动画图像的宽度均为100像素,为什么不使用-

private static final float WALK_ANIM_WIDTH = 100f;


X位置将是-

Gdx.graphics.getWidth() / 2f - WALK_ANIM_WIDTH / 2f


更新:

根据您的评论,您可以看到-

public static final int SCREEN_WIDTH = 800;
public static final int SCREEN_HEIGHT = 520;

guiCam = new OrthographicCamera(SCREEN_WIDTH, SCREEN_HEIGHT);
guiCam.position.set(SCREEN_WIDTH / 2f, SCREEN_HEIGHT / 2f, 0);


现在,您无需使用“ Gdx.graphics.getWidth()”,而只需使用SCREEN_WIDTH。

看看libGDX中的SuperJumper演示。您将看到他们如何在游戏世界中使用视口。

10-06 05:53
查看更多