简单的物理模拟仪表和像素转换

时间:2015-04-07 16:47:30

标签: c# winforms visual-studio physics game-physics

我正在构建一个简单的物理模拟,它使经典机械师感到震惊。 用户输入起始速度和高度,然后有一个球从这个高度落下的动画。 我使用以下公式(这是正确的):

y = y0 + v0t + 0.5at ^ 2

问题是即使起始速度为100米/秒,球仍然移动得非常缓慢。

原因可能是球以像素而非米为单位移动。我可以将速度乘以一个大常数,但时间会改变。例如,如果花费20秒到500米,现在它将花费更少,并且用户期望看到球运动的时间将与物理公式的结果相同。

1 个答案:

答案 0 :(得分:1)

使用米与像素的唯一部分是当您显示动画时。计算没有改变。您应该转换的唯一内容是y - 使其适合您需要的屏幕。当然,当您增加起始高度时,球的大小和头部都需要在显示屏上变小:)

例如,如果您有一个800像素高的表单,并且您想要显示一个球从10米落下的场景,那么您可以做的最好是每个使用80像素仪表。这意味着无论何时你正在绘制球,你都必须将你从等式中得到的y乘以80。使用float s :)认为它必须远离场景才能一次看到它。一切都变得更小,以适应框架中的一切。因此,下落高度越大,球在相同的初始速度下移动的速度就越慢。