作者ddavid (謊言接線生)
看板GameDesign
標題Re: [程式] C# 還是C++?
時間Mon Aug 2 00:30:44 2010
: 推 F23ko:C# 2010到底出來了沒啊..... 中文版.... 07/31 02:33
: → F23ko:剛剛試著在xna中加入WPF視窗,結果失敗 囧.... 07/31 02:35
: → F23ko:發出呼叫的執行緒必須是 STA,因為許多 UI 元件都這樣要求。 07/31 02:35
: → F23ko:( ̄▽ ̄#)﹏﹏ 就是要逼人在xna用圖片拼視窗就是了啦..... 07/31 02:37
: → teexit:XNA 圖片拚視窗也不錯啊..一個RT+sprite不就好了? 08/01 03:00
: 推 teexit:XNA和DX我覺得差很多... 唯一有關聯的感覺是SHADER... 08/01 03:03
: → teexit:不過也只限於DX9的SHADER... 要學DX還是重摸一下比較好 08/01 03:04
: → teexit:XNA對目前的我來感覺就是方便的工具... 寫小的render程式 08/01 03:05
: → teexit:很快... 08/01 03:05
: 推 F23ko:考慮以後做遊戲使用上的通用性,我想要直接給不同參數就能做 08/01 09:33
: → F23ko:不同外觀、目的的視窗..... 08/01 09:34
: → F23ko:在學的同時,我打算一點一點的寫出屬於自己的Libray 08/01 09:35
至少在遊戲上,我會建議用圖片拼視窗。直接採用Windows的視窗去做變化處理
,初期看來方便,但後來反而會受限,要花更多功夫去處理。大多數的商業遊戲也都
只用一個基本窗或是根本就只用全螢幕,裡面自己畫。
比如說你要一個基本背景窗跟訊息窗,從Windows既有的視窗來改也許是很快,
看起來也不錯。但是當你要能夠全螢幕時怎麼辦呢?你又沒辦法將兩個窗用分割的方
式來一起分佔全螢幕,結果你還是得合成一窗用拼的。如果你一開始就在一個基本窗
去思考,這就只是一個用很簡單的半透明貼圖把訊息區塊貼在遊戲背景區塊上。另外
還有各窗的訊息傳遞也是一個雖然不算難可是很煩的問題。要是整合在一個窗裡面自
己畫成多個窗,最起碼你完全不會碰到這個問題。
事實上視窗也是人畫出來的,並不是電腦中真的有個視窗的觀念。所以你如果要
通用性,反而開全螢幕自己畫能夠最有變化。想想看你如果要用原本Windows窗去改
,那你想要弄出一個包括內容都傾斜45度的訊息視窗,你需要為了Windows原本的設
計規範而去處理、調整多少細節(像非矩形視窗、訊息顯示方向之類)?可是用圖拼
畫的話你會發現只要正常畫出訊息區塊暫存起來,然後整個旋轉45度貼圖就搞定了XD
當然也不是說什麼都是自己畫會比較方便,但是要通用性的話有些還是這樣反而
便利,畢竟Windows的視窗其實本來就不是為了遊戲設計可以亂搞而設計的XD
--
「如果你還知道牆壁或地板是硬的,就不該老是去用頭撞啊!」
「妳在說什麼,為什麼我會沒事去用頭撞牆撞地板啊!」
「不然,還有什麼理由能解釋你怎麼這麼笨啊!」
--蘭娜.席斯塔
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.250.175.242
1F:推 F23ko:現在就打算自己畫了..... orz.... 08/02 10:52
2F:→ F23ko:但我可不打算選單畫一個、裝備欄畫一個、人物屬性欄畫一個之 08/02 10:53
3F:→ F23ko:類的.... 08/02 10:53
4F:→ F23ko:雖然..... 之前翻過許多的素材資料夾,我知道很多遊戲都是直 08/02 10:54
5F:→ F23ko:接畫一張圖就當作視窗了。 囧.... 08/02 10:55
6F:推 F23ko:大富翁五連參數設定都用txt檔來設定,改起來很好玩 XD 08/02 11:34
7F:推 a1234957:大富翁五是個爛範例 08/02 17:10
8F:→ ddavid:可是事實上要更通用就應該要各別畫才對。這樣你就可以定義 08/02 18:58
9F:→ ddavid:自己的視窗class,然後每個視窗都各自存下自己的外形、背景 08/02 18:59
10F:→ ddavid:、自己的絕對位置跟背景相對位置等等了。你要是全部畫一張 08/02 19:00
11F:→ ddavid:就不能在遊戲中即時拉過來拉過去了。當然把整張圖分割個別 08/02 19:01
12F:→ ddavid:貼也是可以啦,這樣做意義上就是跟分開畫一樣了。 08/02 19:02
14F:推 F23ko:三張圖拼出背景 08/04 01:08
15F:→ F23ko:然後依照需要,可以把元件給擺到背景上面 08/04 01:09
16F:→ F23ko:orz.... 用講的不清楚,寫出來後一看就知道了 08/04 01:10
17F:推 F23ko:現在在弄邊邊的問題,邊緣只能用直角嗎? = = 08/04 01:12
18F:→ virkful:不是方型的視窗應該很煩吧.. 你大可視窗仍然是方形 08/04 09:44
19F:→ virkful:圖片另外貼你自己想要的形狀 08/04 09:45
20F:→ F23ko:邊緣不漂亮.... 想削成圓角。雖然可以另外準備素材來解決, 08/04 10:29
21F:→ F23ko:但是,這樣一來就不能用漸層了...... 08/04 10:30
22F:推 F23ko:直線可以靠貼一張1x1的Texture2D,變形成線去解決,顏色可以 08/04 10:33
23F:→ F23ko:靠過濾色彩去完成 08/04 10:34
24F:→ F23ko:漸層面可以靠先畫好後貼圖進去解決,但只能是矩形.... 08/04 10:35
25F:→ F23ko:或者是.... 一個像素一個像素貼圖,靠過濾色彩填色,只是... 08/04 10:36
26F:→ F23ko:.... 貼800x600張 1x1的圖不用想也知道效能會很差.... 08/04 10:36
27F:→ Splash5:pixel shader?... 08/04 12:02
28F:推 F23ko:找到這個類別了,可是不知道怎麼用.... orz.... 08/04 14:23
29F:→ virkful:你四個角落再用小方塊去補,就能盡量讓視窗呈現成你要的 08/04 19:09
31F:→ F23ko:WASD移動 ↑↓←→縮放 拖曳、MouseClick、邊框等等都還沒 08/05 10:18
32F:→ F23ko:寫..... 加入元件之類的也還沒做..... 看來是大工程..... 08/05 10:18
33F:推 F23ko:覺得繪圖的彈性不夠大,會重寫。 08/05 10:25