代码之家  ›  专栏  ›  技术社区  ›  Signcodeindie

对于我的游戏的主循环,我应该考虑什么:调度程序和故事板

  •  2
  • Signcodeindie  · 技术社区  · 16 年前

    我正在写一个游戏,在其中我想为我的游戏主循环启动一个事件,该事件必须在很短的时间间隔后被触发。

    DispatcherTimer帮助我实现了这一点,我看到了这篇文章

    http://blogs.silverlight.net/blogs/msnow/archive/2008/07/09/storyboard-versus-dispatchertimer-for-animation-and-game-loops.aspx

    根据它,故事板方法比调度计时器更好。这个博客是针对Silverlight的,如果WPF故事板也在第二个线程上启动,我仍然在msdn文档中搜索。有人知道在WPF中使用故事板计时器是否比调度程序计时器有优势。

    2 回复  |  直到 16 年前
        1
  •  2
  •   Aaron M    16 年前

    我想说的是,既然它来自一个官方博客,那么它可能是正确的,其优点是在博客中列出的。这篇文章是由微软网络工具团队的高级SDET领导撰写的。所以我不得不假设他所说的是有价值的。

    根据我的研究,StoryboardTimer优于DispatcherTimer的原因如下:

    1. 故事板在单独的线程上处理,该线程不受DispatcherTimer所在的UI线程的影响。
    2. DispatcherTimer是一个比Storyboard类后面的计时器分辨率更低的计时器,这会导致保真度降低。
    3. 在不同的受支持的操作系统和Web浏览器中,故事板执行更稳定。
        2
  •  4
  •   Milan Nankov    16 年前

    你也可以尝试使用compositionTarget.rendering事件,只需远离故事板。以下是有关compositionTarget.rendering的几个链接:

    How to: Render on a Per Frame Interval Using CompositionTarget

    Silverlight CompositionTarget.Rendering Game Loop

    Fun With Animation Part 1 - CompositionTarget.Rendering

    推荐文章