簡體   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