Re: [問題]在寫小遊戲時遇到物件階層設計的問題
看板C_and_CPP (C/C++)作者StubbornLin (Victor)時間19年前 (2005/11/27 16:28)推噓1(1推 0噓 3→)留言4則, 1人參與討論串2/2 (看更多)
※ 引述《cppOrz (cppOrz)》之銘言:
: ※ 引述《linjack (嗯)》之銘言:
: : 我理想中的狀況是, 這樣寫似乎 gamewindow 就不用處理重繪了
: : 因為東西不是被畫上去的, 而是每一個物件都是一個 widget
: : 看起來想法二似乎比較好 ?
: : 可否請板上大大指點一二呢 ? 感激不盡.
: 小程式的話其實怎麼做都可以啦
: 不過一般遊戲的做法,都是自己處理重繪的部份
: 而且很重要的一點,計算(遊戲的邏輯、資料處理、物理運動…等)和顯示
: (不管你是怎麼畫)的處理,最好是分開的
: 在顯示上,有部份的設計和 QWidget 現有的功能是重疊的,因此自己重做
: 可能會覺得有點浪費;換句話說,如果你對 QWidget 夠熟,的確是可以最
: 大限度利用它現成的架構……
: 但是這樣的缺點就是你會被綁在 QWidget 上。舉個例子,假設有一天你需要
: 做大量的混色,或者你發現需要 60 fps 以上,才能保持流暢度,QWidget
: 不夠快怎麼辦?如果當初是用第一種想法(自己處理重繪),也許還有辦法
: 簡單移植(修改底層的成像核心);如果當初是用第二種,你大概會發現重寫
: 還比較快!
小遊戲 真的如同他所說的 怎樣寫都可以
但是遊戲要是大起來 如果沒有良好的架構
會像一艘漏水的船 越寫你會越發現 那邊一個洞 這邊一個
到處忙著補洞 最後 船就沉了
我個人的喜好
我喜歡把繪圖的部份抽像化 盡量讓繪圖獨立出來 用Class封裝
這樣當我需要用不同的環境下繪圖 就只要換掉這個Class就可以
不過 困難之處 就是Interface要如何定 以及Class等等問題
都不好解決
而繪圖的方式 我通常都喜歡用一點一點來處理
雖然麻煩 但是是最直接的方式
半透明貼圖等等的效果 都可以直接做出來
麻煩之處 就是 如果要針對不同色深都可以正常顯示
那就要對不同的色深各寫一套函式
甚至 圖檔格式都自己定 自己寫一套專門的圖檔轉檔程式
你可以在裡面定自己的資訊 像一個圖檔包函好幾張
變成一段動畫 每格都有停留時間的資訊
如果要做 還可以他每張圖片都可以有一段語法
例如:
PlaySound("01.mp3");
如此 當圖片播放到這張時 就會有聲音跟著出來
或著 用語法描束這個東西的物理處理方式
Set M = 10;
Set Vx = 3;
Set Vy = 4;
Set ax = 1;
Set ay = 0;
說了那麼多 總而言之 寫大的遊戲
就像在堆積木 當你有了自己處理東西的程式庫
以後 就可以直接套用
不過 我至今都還沒有滿意我自己寫的程式庫
每次都覺得架構不夠好 重新寫過= = 到現在重寫幾次了
我也記不得了
以前寫的小遊戲
雖然只有簡單的打地鼠 但是在背後我寫了圖檔編輯器
繪圖程式庫
所以 在主程式寫的過程 非常的短
我只要套用我寫好現程的東西就OK了
http://www.kinmen.info/vic/download.pl#12
我一直想開一個遊戲設計版 專門討論遊戲設計的版
但是不久就要學測了= =||
(現在還在醉生夢死囧)
等學測過後 如果考上大學 再來開版吧
到時 請大家幫忙聯署 XD
--
VICTOR工作室
URL : http://www.kinmen.info/vic/
C/C++
Visual Basic 6.0
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.116.71.34
推
11/28 00:31, , 1F
11/28 00:31, 1F
→
11/28 00:34, , 2F
11/28 00:34, 2F
→
11/28 00:35, , 3F
11/28 00:35, 3F
→
11/28 00:36, , 4F
11/28 00:36, 4F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章