【问题标题】:What is the best template to use in C# Visual Studio 2008 for a 2D game?在 C# Visual Studio 2008 中用于 2D 游戏的最佳模板是什么?
【发布时间】:2010-09-02 22:05:48
【问题描述】:

它是 WPF 吗?世界足联?自定义模板? 我目前使用 WFA,但它似乎并不接近最佳状态。不,我不是要求推荐 DirectX 或其他语言。

谢谢。

【问题讨论】:

    标签: c# visual-studio-2008 templates 2d


    【解决方案1】:

    您希望它是真正的 2D,还是您想要一个 3D 对象在 2D 中移动的“2.5D”游戏?

    对于大多数基本的 2D,例如不需要非常精细的人工输入控制的回合制游戏或简单动画,WFA 中使用的 System.Drawing 工具可能会很好。您可以使用很多技巧,例如使用小图像作为精灵、渲染矢量图形以及必备的基本形状绘制功能。您可以使用像位图这样的图像对象来模拟页面翻转(创建一个位图,在其上绘制形状,然后调用 Graphics.DrawImage()),或者只是在您用作图形窗格的控件上使用 SetRedraw(false)在绘制下一个窗口时冻结那里的内容。

    WPF 的一些工具是一个重大的飞跃。查看 System.Windows.Media.Media3D 命名空间;它具有用于 3D 矢量代数和几何图元的工具,允许您创建具有顶点着色和所有技巧的 2.5D 游戏。可以引用基本结构并使用它们的数学能力,或者您可以构建一个 WPF 应用程序,将它们集成到图形窗格中。你必须自己研究这个;我是 WPF 的轻量级专家。

    如果您希望您的游戏真正获得一些 FPS,您将不得不使用 DirectX 等加速平台。 XNA Game Studio 是一个免费的 .NET 兼容 API,它封装了许多 DirectX 功能,允许您创建具有加速图形的 .NET 应用程序,而无需凌乱的本机代码连接。在几乎任何与 .NET 兼容的平台(包括 Windows)上创建和运行应用程序都是免费的;您必须付费并加入“XBox Creator Network”才能发布免费的 Xbox 360 游戏。

    【讨论】:

    • 我也喜欢 WFA 提供的控制量。不幸的是,即使启用了双缓冲,它也会闪烁。到你三倍缓冲的时候,除了画一个圆圈之外,任何东西都需要很长时间才能成为一个可行的动画。目前我使用直接形成draw方法,就像你提到的Bitmap页面翻转方法一样,但只是使用Invalidate。
    • 首先,WFA 只会闪烁;该框架是为桌面布局设计的,这种布局不太依赖速度。 System.Drawing 命名空间为您提供了创建 MS Paint 而非 Halo 所需的工具。其次,除了双缓冲之外,尝试使用位图的翻页方法。这是将图形的透明度放在头顶上与放置空白并绘制图形之间的区别。一个问题是图像将是光栅;这是要扔掉的大量内存,所以我会保留 Bitmap 对象然后擦除它们。
    【解决方案2】:

    XNA 和 Box2D.XNA 物理引擎(如果您的游戏需要 2D 碰撞检测和物理)。 XNA 负责向您隐藏所有疯狂的 DirectX 内容。它有一个很棒的内容管道,让您可以非常轻松地将内容添加到您的游戏中。我最喜欢的小游戏框架。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-16
      • 1970-01-01
      相关资源
      最近更新 更多