【发布时间】:2016-10-03 20:03:25
【问题描述】:
我正在 libgdx 中制作一个自上而下的迷宫游戏,并使用 extendViewport 来渲染游戏摄像机。我对如何创建小地图有点困惑。我应该为小地图创建一个额外的视口和相机吗?我对整个视口/相机仍然很陌生。谢谢!
【问题讨论】:
-
这个问题对于这个网站来说太宽泛了。我建议在 LibGDX 论坛上提问,你会得到几个不同的想法来接近它。与下面答案中的建议相反,我绝对会创建第二个相机和视口,这样您就可以将小地图视为自己的屏幕,而不必担心在绘制之前裁剪任何内容。但我不一定会尝试使用 Viewport 类和 Stage 来执行此操作,因为正确实现非居中视口的所有 Viewport 方法可能很麻烦。
-
如果您使用 stage2D 来布局您的 UI,您可能会考虑将您的小地图绘制到 FrameBuffer,并从 FrameBuffer 的纹理中创建一个图像以放置到您的 UI 中。但这仍然需要一个用于小地图的独特相机。尝试使用与场景的其余部分相同的相机绘制小地图是多次将头撞在墙上的秘诀,恕我直言。 :)
-
@Tenfour04 那么,我将如何将它绘制到 frameBuffer 中呢?我很抱歉所有的问题。我还想从小地图中排除某些东西,例如玩家。小地图上唯一的东西应该是瓦片地图。
-
@Tenfour04 我想我之所以如此困惑的部分原因是我不明白这一点;如果我创建一个新的视口,它如何知道视口会影响什么?我在 spritebatches 中渲染的所有内容如何也会出现在视口中?
-
着色器的输出被拉伸以填充任何活动视口。 SpriteBatch 的着色器使用相机的组合视图和投影矩阵将世界坐标转换为“视口坐标”(其中可见区域是以原点为中心的 2x2“正方形”),该坐标被拉伸以适应活动视口。
标签: java android libgdx viewport