gpt4 book ai didi

java - 游戏开发 - 使用屏幕坐标与世界坐标

转载 作者:搜寻专家 更新时间:2023-11-01 02:44:05 24 4
gpt4 key购买 nike

我和一个 friend 都是游戏开发的新手,我们就世界坐标和屏幕坐标进行了讨论。

我们正在关注 libGDX 的精彩在线教程系列,他们使用 100 PPM(每米像素)比例因子。如果重新调整屏幕大小,对象的缩放将不再有效。我的 friend 确信这不是问题,他可能是对的。但是,我的印象是,在开发游戏时,开发人员通常应该只使用预定义的世界坐标系,并让相机将其转换为选定的屏幕坐标。我确实理解在使用鼠标点击等时需要反向转换。但是,我关心的是世界空间中对象的放置和缩放。

我想联系这个社区以获得一些专业反馈。

最佳答案

这是几乎所有 Libgdx 教程中最大的问题之一。它们很棒,但是从像素到米/单位的对话是错误的。
Libgdx 通过 Camera 提供了一个很好的解决方案以及新的 Viewport 更好的解决方案类(在引擎盖下与 Camera 一起工作)。

它真的很简单,可以解决不同屏幕尺寸/纵横比的问题。
只需选择一个 Virtual_WidthVirtual_Height (以米或类似单位考虑)。
例如,您让人类在 2D 平台游戏中互相战斗。让我们说我们的人类有 2m 高,所以想一想,一个人应该使用多少屏幕空间?如果说,一个人应该占据屏幕空间的1/10,我们的虚拟高度就是10*2=20。现在考虑您要定位的主要纵横比。假设它是 16/9,那么您的虚拟宽度约为 35。

接下来需要考虑什么样的Viewport你要。您确定要使用 Viewport , 它支持 Virtual_WidthVirtual_Heigth .
你可能想要一个 Viewport , 它保持宽高比并用黑条 ( FitViewport ) 填充屏幕的其余部分 (如果屏幕有不同的宽高比) 或者你可能想要 Viewport通过拉伸(stretch)单位( StretchViewport )来填充整个屏幕。

现在只需创建 Viewport使用您的虚拟宽度和高度并在 resize() 中更新它给定width的方法和 height .

希望对您有所帮助。

关于java - 游戏开发 - 使用屏幕坐标与世界坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26645298/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com