我正在研究 2d 游戏的简单物理学,我想要帮助我尝试做一个模拟。
我有一个酒吧会落在地上的一个固定球上,下面是 xaml:
<Canvas Background="CornflowerBlue">
<Rectangle Name="bar" Width="200" Height="20" Fill="Cornsilk" Canvas.Left="250" Canvas.Top="50" />
<Ellipse Name="ball" Height="50" Width="50" Fill="PaleGreen" Canvas.Left="380" Canvas.Top="250" />
</Canvas>
我已经完成了所有的计算来模拟杆因重力而下落,但我真正需要帮助的是,一旦杆击中球,它的一侧会在地面上,另一侧会在球上,这可能很漂亮很多用 xaml 表示:
<Canvas Background="CornflowerBlue">
<Rectangle Name="bar" Width="200" Height="20" Fill="Cornsilk" Canvas.Left="250" Canvas.Top="246.675" RenderTransformOrigin="0.5,0.5" >
<Rectangle.RenderTransform>
<TransformGroup>
<ScaleTransform/>
<SkewTransform/>
<RotateTransform Angle="-18.897"/>
<TranslateTransform/>
</TransformGroup>
</Rectangle.RenderTransform>
</Rectangle>
<Ellipse Name="ball" Height="50" Width="50" Fill="PaleGreen" Canvas.Left="380" Canvas.Top="250" />
</Canvas>
而且我不知道如何让杆的左侧触地,而左侧将在物理术语中超过球。
我知道有像 Farseen 这样很棒的物理引擎,但我只是想了解它在这种情况下是如何工作的。
我知道如何根据时间获得横杆的 Y,所以我一直检查它直到它与球相撞,但那之后呢?
谢谢!