2

我的目标是更好地了解 C# 的特性,并更轻松地创建简单的应用程序。我对 Flash(Actionscript 3)相当胜任,并且找到了我编写的旧井字游戏。我开始想知道将这段代码移植到 C# 应用程序中。不太了解 C#,我想知道迁移会有多困难。

一方面,底层游戏逻辑在语法上相似,因此很容易移植。

但是,就图形而言,我什至不知道从哪里开始。到目前为止,我只接触过 C# 中的 Windows 窗体和控制台应用程序。

我想知道这些 Flash 概念是否在 C# 中有类似的类似物,或者过程和语法是否完全不同:

  • 在舞台上放置图形元素
  • 从开始/结束坐标渲染线
  • 影片剪辑上的事件侦听器
  • 交换图形元素内的图像(或者,在我的 Flash 版本中,影片剪辑中的 nextFrame())
4

3 回答 3

4

您可能想尝试使用 Silverlight 开发您的小游戏。使用 C# 和 Xaml 编码的 Silverlight 应用程序在形式上与 Flash 应用程序非常相似,您应该可以轻松找到所需的一切。

所以我建议你下载 Silverlight SDK(免费)并试一试。

于 2011-01-07T16:22:41.523 回答
0

首先,Flash 之于 WPF(足够接近)就像 ActionScript 之于 C#。

WPF/Silverlight 模型与 Flex 更相似,更类似于 Flash。一切都作为对象添加到 UI 树中,甚至是线条。

同样,向控件添加事件处理程序(如单击按钮)可以在“代码背后”(与视图一起存在的代码)中完成,但建议使用 MVVM 模式。如果您不熟悉关注点分离和单元测试的概念,请随时从更简单的“代码隐藏”方法开始。

虽然 WPF 和 Silverlight 非常相似,但我建议从 Silverlight 开始,因为 SDK 和可用示例更丰富。稍后您可以轻松地转移到 WPF(尽管将应用程序从 Silverlight 移植到 WPF 不是自动的)。

正如您所提到的,交换图像将通过 Silverlight 中的“视觉状态”完成(或者可能更改图像参考,这更“hacky”)。

请查看以下链接以开始使用:

于 2011-01-07T16:31:57.253 回答
0

如果您正在寻找专门做游戏之类的,您可能希望查看免费的 XNA 框架。但是,会有一些差异,因为 Flash 为您提供了更多预先“设置”和修改它们的能力。

  • 在舞台上放置图形元素

    如果你走 XNA 路线,你将使用 spritebatch 绘制精灵,你告诉他们在哪里以及如何绘制,这就是他们要去的地方

  • 从开始/结束坐标渲染线

    在 Windows 窗体中,您可以通过简单的 System.Drawing 调用来执行此操作,但是如果您希望在 XNA 中执行此操作,您必须制作一个 1 像素的正方形并将其拉伸/旋转到您想要的位置,或者使用 3d 基元(虽然这会将您限制为 1 像素线)

  • 影片剪辑上的事件侦听器

    查看代表,但据我所知,电影剪辑并没有真正的等价物

  • 交换图形元素内的图像(或者,在我的 Flash 版本中,影片剪辑中的 nextFrame())

    这很简单,取决于你的意思。例如,如果您想为精灵设置动画。您可以通过移动源矩形或更改 spritesheet 的纹理来做到这一点。如果您指的是整个屏幕,则只要您使用 spritebatch,这主要是为您处理的。在 Windows 窗体中,您必须自己完成更多操作,但基本概念是相同的。

总体而言,它并没有那么糟糕,但如果这听起来不吸引人,请查看 Silverlight。它基本上是 C# 风格的 flash,因此您可能会发现过渡更容易。

祝你好运,希望这能帮到你。

于 2011-01-07T16:32:37.603 回答