- 2008-04-09 (三) 0:55
- 工具編程
雖然引擎連1%完成度也沒有,今天開始做遊戲的編輯工具,或者應該說是做工具的原型,一切都當作是實驗吧。
(這是 DockPanel Suite 的 Sample,不是 Visual Studio 啊! )
之前已決定採用開源的 DockPanel Suite。它是一個 C# 開源的 .Net 程序庫,基本上做到 Visual Studio.Net 的視窗 docking 功能,包括 tabbed window、split window、float window、docking indicator、auto-hide、讀寫 XML 設定檔等等。我是看到 Cg Composer 的 DLL 才知道有這個 .Net 程序庫,後來也找不到更好的選擇。
入門 Tutorial
我暫時認為 DockPanel Suite 的唯一缺點是缺乏文檔,2.X 的版本沒有任何文檔。不過,它的 sample 程式很容易理解,可以很快就做到一些東西出來。這裡記錄一點要注意地方:
- 2.X 的源代碼是 Visual Studio 2005 版的 Project,但 upgrade 至 2008 完全沒有問題。
- 要把主要的 Form 的 IsMDIContainer 屬性設定為 true。
- 在這個 Form 裡加入 DockPanel 物件 (要用 Form Designer 加入這物件的話,可以在 VS2008 中按 Tools -> Choose Toolbox Items,在 .Net 頁面用 Browse 找 WeifenLuo.WinFormsUI.Docking.dll)。
- 內容的視窗要繼承自 DockContent,顯示該示窗時用 aDockingWindow.Show(dockPanel),那麼就會把aDockingWindow 放進 dockPanel。
結語
以前曾經想過在自己做的 C++ GUI Toolkit 上實現這樣的 Docking 功能,但後來還是沒有時間做。對於用開 Visual Studio 的 Programmer 來說,總覺得這樣的介面是最適合做開發遊戲的環境,不同的情況還可以把各種設定記錄下來就更方便。最後發現,想要的,別人已經做好了。也許會有一點失落,但這麼好的程序庫,可以節省很多時間,還是把省下的時間做一個好的工具,繼而做一個好的遊戲來。
P.S. 對長期用 C++ 的我來說,C# 的編譯速度真的快得無話可說。按 F5 直接編譯再執行 C# 程序簡直好像沒有編譯過一樣。工作上,只是執行一個 console 程序都可能要等半分鐘….. 這對我選擇了用 C# 做遊戲編輯工具的決定更有信心。
Comments:4
- 半路 08-04-09 (三) 15:56
-
我從前在使用 MFC 時也動過相似的念頭,想要製作個 docking panel 的功能出來,不過後來並沒有實行。用過了幾個程式編輯器,還是覺得 Visual Studio 的使用者介面無可比擬,如果遊戲編輯器也能如此直覺好用,對遊戲設計者來說應該會更便於使用。
目前也已經看到幾個使用 C# 開發的遊戲引擎,製作出類似於這種操作介面的遊戲編輯器。使用 C# 做為遊戲編輯工具的開發語言,可以說是越來越盛行的趨勢。當然,專案編譯速度的提升也是一個關鍵要素。XD
- dennis 08-04-09 (三) 22:00
-
Besides being able to compile quickly, I think using C# for tools development is good also because C# has reflection supported which make many features much more easy to do.
- Edwin 08-04-10 (四) 3:05
-
對,C# 開發GUI真的比C++方便百倍。
我們正在試Python 做相同的事,等我們完成再交流一下。 - Hua 08-05-04 (日) 23:42
-
wxPython也有這些功能, 不敢說全部都支援, 想到的大部分都有. 一開始我也用MFC寫, 後來用wxPython後覺得比MFC好用太多了. 缺點是與C整合需要些工夫, 執行速度也比較慢.
Trackbacks:0
- Trackback URL for this entry
- http://miloyip.seezone.net/wp-trackback.php?p=62
- Listed below are links to weblogs that reference
- 要做 Visual Studio 樣子的使用者介面? 用 DockPanel Suite 吧! from Milo的遊戲開發