【发布时间】:2019-01-30 21:11:23
【问题描述】:
是否有任何优雅的方法可以计算速度、尺寸和距离,以便它们在每个屏幕尺寸上最终都相同?
我尝试了很多东西,包括缩放因子等,但没有奏效。一旦屏幕尺寸不再是 1920x1080,一切都会变得非常奇怪。
编辑:
我修好了它。我现在使用屏幕宽度的分数来创建对象的大小。
我将使用的每个硬编码速度分别除以1080 / screenWidth 或1920 / screenHeight,这样它们在每个屏幕尺寸上都是相同的。
所以我仍然使用比例因子,但我使用它们的频率较低,而且我认为我有时会在错误的地方使用它们。
现在的问题是: 既然所有内容都是根据屏幕宽度进行缩放的,我如何才能支持除 16:9 以外的其他比例的设备?我试图找出哪个边更接近 16:9 帧,然后使用那个边正确缩放所有内容,但正如我发现的那样,这不起作用。游戏如何处理不同的屏幕比例?
【问题讨论】:
-
为什么不直接使用 Android 已经为这类事情提供的单元
dp? stackoverflow.com/questions/2025282/… -
还要意识到屏幕没有相同的高度/宽度比。任何像 1080 这样的硬编码值都不起作用。
-
确定物理以您喜欢的方式工作的基本维度。然后,对于不同尺寸的屏幕,获取相对于基本尺寸的 x 和 y 尺寸的比例因子。最后,在感兴趣的数量上使用这些 x 和 y 比例因子,例如速度。
-
@TheWanderer 我在开始之前阅读了这个问题并尝试实现我自己的 dp...
-
@jrd1 这就是我所做的,我对解决方案不满意,因为首先我在某个地方犯了一个错误,其次我认为这不是一个非常漂亮的解决方案......不是有一些优雅把戏?如果没有,我想我将不得不再次做同样的事情,希望我不要再把它搞砸了,这会很烦人
标签: java android game-physics screen-size