【发布时间】:2013-08-05 21:19:17
【问题描述】:
我在集中我的精灵动画时遇到问题,有人可以给我指点一下吗?
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);
我的动画正在向左绘制几个像素。
【问题讨论】:
-
看起来您正在尝试使用
walkSheet.getWidth()/FRAME_COLS计算当前帧的宽度...为什么不直接调用currentFrame.getWidth()呢? -
@damo 感谢您的回答,但它只是给了我相同的结果,当在桌面上运行时,动画会向右绘制一点,而在我的手机上运行时,它会向左一点,也许不是我必须更改的那段代码?
-
我还会确保您正确定义了您的
TextureRegions。TextureRegion可能在屏幕上居中,但精灵可能不在TextureRegion中居中。
标签: java android animation sprite libgdx