像重力环境一样在画布上加速下降物体?

时间:2017-11-10 09:11:00

标签: c# win-universal-app

我有一个带边框的画布

indexname=xw_qk&
search=IELEP0229%2FF%28F_ReqNum%29%2A2018%2FF%28F_YEAR%29
&page=0&pagenum=20sort=&&type=content

我已经在它上面实现了操作功能。然后我需要它总是像空中的东西一样掉下来。有什么简单的方法吗?

除此之外,我还想在触摸地面时处理动画:反弹,滚动......基于它的形状。我是否需要游戏引擎,框架或类似的东西?

2 个答案:

答案 0 :(得分:2)

  

然后我需要它总是像空中的东西一样掉下来。

如果您只想要一个坠落效果,可以使用TranslateTransform将元素设置为沿Y坐标设置动画。例如:

<StackPanel Margin="15">
   <StackPanel.Resources>
       <Storyboard x:Name="myStoryboard">
           <DoubleAnimation
               RepeatBehavior="Forever"
               Storyboard.TargetName="myTranslateTransform"
               Storyboard.TargetProperty="Y"
               From="0"
               To="360"
               Duration="0:0:5" />
       </Storyboard>
   </StackPanel.Resources>
   <Rectangle
       Width="50"
       Height="50"
       Fill="RoyalBlue"
       PointerPressed="StartAnimation">
       <Rectangle.RenderTransform>
           <TranslateTransform x:Name="myTranslateTransform"  />    
       </Rectangle.RenderTransform>
   </Rectangle>
</StackPanel>

private void StartAnimation(object sender, PointerRoutedEventArgs e)
{
    myStoryboard.Begin();
}

有关转化的更多详情,请参阅this article

  

除此之外,我还想在触摸地面时处理动画:反弹,滚动......基于它的形状。

对于跳出效果,您可以使用BounceEase之一Easing functions。对于滚动,您可以使用RotateTransformTranslateTransform结合使用。有关如何合并两个动画,请参阅this article

总之,您可以在UWP动画库中找到许多想要的动画。请参考Animations overview。如果这不符合您的要求,您可以考虑使用Composition animations。对于样本,您可以参考WindowsUIDevLabs

答案 1 :(得分:0)

我需要

Physics XAML Helper