【问题标题】:How to create a smooth animation using C# Windows forms?如何使用 C# Windows 窗体创建流畅的动画?
【发布时间】:2013-01-08 02:50:03
【问题描述】:

由于我的学校项目,我必须仅使用 Windows 窗体创建游戏..

我决定制作一款 2D 赛车游戏。所以现在我需要移动汽车图像。 为了移动它,我尝试使用 KeyDown 事件对汽车进行动画处理,但是动画确实步履蹒跚。 那么有没有其他的方法来制作动画呢?还是有可能以某种方式解决它? (对于汽车,我使用停靠在窗体上的 PictureBox,并在其绘制事件中,我在右侧窗口位置重新绘制汽车。)

【问题讨论】:

  • 我建议你阅读双缓冲。
  • 相当大的话题。这个线程可能会提供一些指针:stackoverflow.com/questions/188349/…
  • 发布你到目前为止所做的事情。
  • 你考虑过 WPF 吗? WinForms 并不是最好的 Fx。

标签: c# forms animation smooth


【解决方案1】:

这篇文章应该可以解决您的问题: simple-animation-using-c-windows-forms

他详细介绍了他如何在 Windows 窗体中编写动画并回答了您的一些问题。

如果这不能解决问题,请使用 Freeman 所说的一些 XNA 库查找。

【讨论】:

    【解决方案2】:

    根据您提供的详细信息,我可以这么说,如果您想创建一个迷你游戏,我建议您使用带有一些 XNA 库的 WPF,因为 WinForms 并没有真正切出以实现非常令人印象深刻的图形体验,但是相反,它有利于创建简单的 GUI 工具。有时甚至双缓冲也没有多大帮助。

    【讨论】:

    • 在这种情况下,一些 XNA 库也可以与 windows 窗体一起使用,这些库专门设计用于优化托管运行时的图形渲染。
    【解决方案3】:

    你可以制作一个运动动画系统

            int x = pictureBox1.Location.X;
            int y = pictureBox1.Location.Y;
            if (e.KeyCode == Keys.Right) x += 1;
            else if (e.KeyCode == Keys.Left) x -= 1;
            pictureBox1.Location = new Point(x, y);
    

    为了更快地改变 x+=1 x-=1 和 y+=1 y-=1;到更大的数字,比如 y x-=3; 所以在这个鳕鱼中,你是箭头键,但只有左右键,因为你会反复向前行驶,所以你只能左右移动

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-23
      • 1970-01-01
      • 1970-01-01
      • 2015-11-28
      • 2013-12-24
      • 1970-01-01
      • 1970-01-01
      • 2013-05-12
      相关资源
      最近更新 更多