繁体   English   中英

将代码从Flash移植到C#是否可行?

[英]Is it practical to port code from Flash to C#?

我的目标是更好地了解C#的特性,并更轻松地创建简单的应用程序。 我相当熟练地使用Flash(动作脚本3),并找到了我写的一个旧的井字游戏。 我开始想知道是否将此代码移植到C#应用程序中。 不了解C#,我想知道迁移会有多困难。

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

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

我想知道这些Flash概念在C#中是否具有相似的类比,或者过程和语法是否根本不同:

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

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

因此,我建议您下载Silverlight SDK(免费)并尝试一下。

首先,Flash与WPF(足够接近)就像ActionScript与C#一样。

WPF / Silverlight模型与Flex更加相似,而与Flash相似。 一切都作为对象(偶数行)添加到UI树中。

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

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

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

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

如果您正在专门从事游戏之类的游戏,则不妨考虑使用免费的XNA框架。 但是,会有所不同,因为Flash使您拥有更多的能力来事前“设置”并修改它们。

  • 将图形元素放置在舞台上

    如果您使用XNA路线,则将使用spritebatch绘制精灵,并告诉他们绘制的位置和方式,以及绘制的方向

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

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

  • 电影剪辑上的事件监听器

    调查代表,但据我所知,电影剪辑并没有真正的等效项

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

    这很简单,具体取决于您的意思。 例如,如果要设置精灵动画。 您可以通过移动源矩形或更改Spritesheet的纹理来执行此操作。 如果您的意思是整个屏幕,那么只要使用spritebatch,就可以为您解决大部分问题。 在Windows窗体中,您必须自己做更多的工作,但是基本概念是相同的。

总体来说还不错,但是如果听起来不那么吸引人,请查看Silverlight。 它基本上是C#样式的Flash,因此您可能会发现过渡更容易。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM