【问题标题】:Animation in Windows Universal AppsWindows 通用应用程序中的动画
【发布时间】:2015-10-31 15:16:33
【问题描述】:

为 Windows 通用应用程序创建动画的最佳方法有哪些?

我的想法是让汽车(图像)行驶到 4 个位置中的 1 个(也是图像)。我应该为每个位置创建一个动画(4 个汽车行驶到每个位置的动画)还是应该移动汽车逐像素编程。

现在有了这两个想法,它们都有缺点:

为每个位置创建动画:

  • 如果我为平板电脑屏幕尺寸创建动画但用户使用手机会怎样?
  • 4 个动画会消耗一些内存

逐像素移动

  • 无法确定汽车最初应面向的方向(如果位置在汽车后面且汽车从后到前,则会令人困惑)

  • 会消耗大量的处理内存

  • 再一次,如果设备更小会发生什么(你怎么知道什么时候停止汽车移动)

  • 由于一个位置位于屏幕的左上角,而另一个位置位于左下角.. 你怎么知道汽车何时需要面向对角线移动?

这些都是我想为我的 windows 通用应用程序创建动画时考虑的所有问题..

有人知道动画的最佳方法吗?

谢谢

【问题讨论】:

    标签: c# animation win-universal-app


    【解决方案1】:

    对于所有动态动作(从点到随机点的动画,包括这种情况,如果您知道可以使用多少点),您应该使用以编程方式创建的动画。您可以将此解决方案用于常见应用程序,而不是用于具有某些游戏引擎的游戏。

    是的,您可以使用预渲染的动画文件,但如果这真的有必要的话。 :)

    【讨论】:

    • 如果一个位置在左上角,并且它每毫秒向右移动 1 个像素.. 确定汽车需要移动到哪里才能到达该位置的最佳方法是什么?有没有办法真正确定位置的中心?
    • 您的图像(汽车)表示为Image控件,所有UIElement包含RenderTransformProjection等道具,在典型应用中您不需要逐像素动画(此方法可以在游戏中使用)。使用StoryboardDoubleAnimationDoubleAnimationUsingKeyFrames 移动您的汽车或其他物体。
    • 所以你是说我应该在 Blend 中创建动画?
    • 你可以在 Blend 或 VS 中完成。在 Blend 中,您可以在设计模式下创建 KeyFrame,但这可以通过 VS 中的代码来完成。例如,请参阅我的帖子here。这是一个简单的示例,你可以创建任何你想要的。
    【解决方案2】:

    你看过 Blend 吗?使用状态来指示各种屏幕尺寸会发生什么/显示什么? 这是一个可能有帮助的视频: https://channel9.msdn.com/Blogs/Charles_Sterling/Expression-Blend-Animations-and-Visual-Studio-Integration

    【讨论】:

    • 如果我通过根据屏幕尺寸更改控件尺寸来提高应用程序的响应速度,那么动画(移动图像)的最佳方法是什么
    猜你喜欢
    • 1970-01-01
    • 2016-07-15
    • 1970-01-01
    • 1970-01-01
    • 2013-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多