我已经尝试解决这个问题两天了,我已经放弃尝试找到现有的解决方案。
我已经开始学习 libgdx 并完成了一些教程。现在我已经尝试使用我所学到的一切,创建一个简单的横向滚动游戏。现在,我知道有这方面的 libgdx 示例,但我还没有找到一个将 Box2d 与 scene2d 和演员以及平铺地图结合在一起的示例。
我的主要问题是相机。
您需要一个用于舞台的相机(据我所知,它用于 SpriteBatch 的投影矩阵传递给演员的方法 draw(),如果这是错误的,请纠正我)并且您需要一个用于 TileMapRender 的相机调用 render() 方法。此外,在某些教程中,GameScreen 中有一个 OrthographicCamera,可在需要时使用。
我尝试将 OrthographicCamera 对象传递给方法,我尝试在任何地方使用舞台上的相机和 TileMapRenderer 中的相机。前任。
OrthographicCamera ocam = new OrthographicCamera(FRUSTUM_WIDTH, FRUSTUM_HEIGHT);
stage.setCamera(ocam); // In the other cases i replace ocam with stage.getCamera() or the one i use for the tileMap Render
tileMapRenderer.render(ocam);
stage.getSpriteBatch().setProjectionMatrix(ocam.combined); // I am not sure if this is needed
我还尝试在任何地方使用不同的相机。
在尝试了所有这些之后,我没有注意到确切发生了什么,但我会列出发生了什么:
- 屏幕上什么都没有(可能相机远离绘制的东西)
- 我可以从 debugRenderer 看到平铺地图和轮廓(我也使用 debugRender,但我不认为它会干扰相机),但演员的精灵不可见(可能在屏幕外)
- 我可以看到我应该看到的所有内容,但是当我尝试移动应该跟随他的 Actor 和相机时,精灵的速度比身体快(绿色的调试方块)。
所以我的主要问题是:
- 我不明白当你有多个相机时会发生什么。“通过”您实际上在显示器上看到的是哪一个?
- 我应该使用多台相机吗?如何使用?
另外,我认为我应该提到我正在使用 OpenGL ES 2.0。
对于这个冗长的问题,我很抱歉,但我认为我应该详细描述一下,因为这对我来说有点复杂。