当相机/屏幕移动时,我试着让精灵保持在静止的身体(实际上是它的固定装置)上。我需要做些什么才能做到这一点?
Background:我有一个播放器(它是动态的,多边形的,设置为一个盒子),当播放器在屏幕上向上移动时,相机会跟着它。
每X米,我就在玩家面前产生一个(静态的)长方形,几米。这个长方形是我试图在上面画一个精灵的身体,问题是当我画它的时候,精灵在屏幕上是静止的,而不是停留在身体/装置的顶部。
我的游戏屏幕像这样跟随着我的玩家:
box2dCamera.position.y = player.getPosition().y + box2dCamera.viewportHeight / 2 - (player.bodyHeight);
box2dCamera.update();我使用libgdx-utils lib在矩形顶部绘制sprite,如下所示:
Box2DSprite box2DSprite = new Box2DSprite(KidsGame.res.getTexture("badlogic"));
fixture.setUserData(box2DSprite);
sb.begin();
Box2DSprite.draw(sb, world);
sb.end();谢谢你的帮助
发布于 2014-12-02 10:53:35
SpriteBatch使用Matrix4进行呈现。
这个Matrix4应该设置为camera的combined矩阵。
随着camera.combined的更改,当camera移动时,您还应该通过在render(delta)中调用SpriteBatch#setProjectionMatrix(camera.combined)来更新SpriteBatch的projectionMatrix。
https://stackoverflow.com/questions/27240552
复制相似问题