我有问题集中我的精灵动画有人可以给我点灯吗?
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);
我的动画正在向左边画几个像素。
答案 0 :(得分:1)
对于x位置,你有 -
Gdx.graphics.getWidth() / 2 - ((walkSheet.getWidth()/FRAME_COLS) / 2)
如果每个动画图像宽度为100px,为什么不使用 -
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演示。您将看到他们如何在游戏世界中使用视口。