[問題] XNA搭配windows form的問題
是這樣的,因為專案需求正在練XNA,基本的運作模式都OK了,單單使用XNA跑Game都蠻順
只是XNA的轉場功能實在不是很好用,看書上的練習都只是在Updata和Draw寫switch,
好比一個最基本的遊戲選單,明明就是很靜態的狀態,
也要用XNA那樣一秒好幾次的邏輯判定在跑,實在很沒必要,想回去用Windows form,
經過Google後發現了這一篇有蠻可行的實作法
http://www.dotblogs.com.tw/help/archive/2009/02/04/7027.aspx
簡單說就是開一個windows form,上面放一個panel,
然後XNA還是照開,把XNA的繪圖都畫在panel上,這樣就可以用windows form的物件了,
這樣做下來還OK,我做兩個panel,一個是選單,一個是XNA,
要用選單的時候把選單panel移到中間,XNA panel移到視窗視線外,以此類推
用這種偷渡法做轉場
不過嘛,還是有點不滿意,比較希望的還是真正XNA要運作的時候才開出來,
所以我動手想小改改看,我把program.cs裡面的new Game1都拿掉,
改成Application.run(form),先只開一個form出來,
然後在form的程式碼裡面到遊戲開始的地方,才開始寫new Game1, run
不過這樣運作會跳出異常例外,說明是不允許在單執行緒再多開一條緒,
這樣我就不是很懂要從哪個地方下手了,
我試過new Thread(new Game1),想說你要多緒就開給你,
不過Thread沒吃,我也不知道要怎麼對Game1的類別增加Runnable的能力
(C#多執行緒我不是學得很扎實,是用java的概念想的,不知道是不是這麼一回事)
再來就是我亂猜的,Google也找不到,
是不是可以開通一個..多執行緒的權限,讓程式變成可以開多線的狀態,
就可以讓我開兩條了(我也不是真的需要兩條,XNA開起來原來的就可以關掉了)
請教一下板上的高手這種windows form to XNA的轉場做法是不是真的可行?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 1.162.162.45
※ 編輯: stu87616 來自: 1.162.162.45 (01/29 20:44)
推
01/29 20:59, , 1F
01/29 20:59, 1F
這麼說也是啦,雖然不是很瞭解,不過從Application.run就大概猜的到,
只是winform比較適合處理介面這類狀態,
說到底也就是對XNA的轉場不滿意而已,
希望能不同的場景就是不同份Updata和Draw在運作,這樣也比較容易管理
※ 編輯: stu87616 來自: 1.162.162.45 (01/29 21:10)
推
02/13 15:50, , 2F
02/13 15:50, 2F
推
02/13 15:52, , 3F
02/13 15:52, 3F
→
02/13 15:52, , 4F
02/13 15:52, 4F