看板 C_Sharp 關於我們 聯絡資訊
※ 引述《F23ko (純潔)》之銘言: : 請問有沒有複雜一點的STG範例可以參考? : 例如雷電那一種.... : 自己想寫個小遊戲 : 雖然自己可以靠暴力去硬寫 : 但是不知道該怎麼寫會「比較好」 : 還有,想請問有沒有進階一點書籍可以參考? : 現在寫寫一、兩百行的小程式沒什麼問題 : 但是寫大程式時,總覺得自己寫的很沒章法 把問題沉澱幾天,我把自己的想法寫仔細一點 自己大致上知道遊戲那種stg的遊戲是怎麼樣子 寫過一個類似特訓99的遊戲,是個只花兩小時的簡單程式 大致上的功能有..... 1.自己可以控制一台飛機(上下左右 + shift加速移動) 2.畫面上有子彈,子彈會依照參數進行移動(簡單的加速度、速度物理公式) 3.碰撞判定 是像這樣的簡單功能而已 在做完這個試作品之後 我開始依照自己當初的構思 去思考「該怎麼做大型一點的遊戲」 我發現還有很多問題,我必須去找解答 例如: 關卡如何處理? 我直覺上應該要寫個類似「撥放器」的東西 去讀取關卡檔,然後「播放」遊戲給玩家玩 但具體細節我根本沒個底 class如何設置會比較好? 是所有種類的敵人都用同一個class,以欄位決定不同種敵人的差異 (例如以一個文字欄位決定顯示那一張圖之類的,好處是擴充怪物容易) 或是一種敵人就設立一個class (假設口袋怪獸是這種設計方式的話,就會有兩百多個class.... 優點是不同怪物間允許很大的差異,但需要寫個共同介面,以及其他地方會變得麻煩) AI、特殊效果怎麼處理? 要寫死在敵人的class裡面,或是設個委派欄位去處理? 甚至,寫在遊戲核心裡,而不是class裡面? 有時候連「顯示該怎麼寫比較好」都會有問題 我看書上的範例都是把顯示寫在外面 然後逐一去找物件的參數去畫圖 例如: foreach(遊戲物件 要畫圖的物件 in 畫面中的物件) { spriteBatch.Draw(要畫圖的物件.texture,要畫圖的物件.position(中略)); } 但我會想把一些亂七八糟的東西塞進物件裡面處理,像這樣 foreach(遊戲物件 要畫圖的物件 in 畫面中的物件) { 要畫圖的物件.開始畫圖(spriteBatch); } 後者的優點是可以處理複雜的貼圖,例如一個物件,翅膀跟身體分開貼圖之類的 但我不知道會不會出問題..... ========================================================================= 像這類問題還很多 所以...... 請問找的到像是雷電、東方等等夠大、夠複雜的C#原始碼嗎? 直接學現成的東西,比起「重新發明輪子」要來的更快、更好。 那些複雜一點的遊戲,該不會都用教學書那一套硬寫出來的吧? = =||| -- 我... 我一點都不糟糕啦!>///< -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.27.109.99 ※ 編輯: F23ko 來自: 163.27.109.99 (07/17 00:11)
ddavid:像敵人的class就用繼承的啊,通通繼承一個Enemy class而來 07/17 00:19
ddavid:這樣,然後技能都繼承Skill class,所以不同的敵人就可以掛 07/17 00:20
ddavid:上不同的技能class之類的 07/17 00:20
ddavid:每個敵人都有Attack method,但是實作內容不同這樣 07/17 00:21
yauhh:前段,遊戲的確是要有個外框架把stage擺好,蠻多書會講框架. 07/17 00:33
yauhh:後段你好像可以參考Design Patterns Explained書中的討論. 07/17 00:34
yauhh:可使用"抽象與實做分開"的設計 07/17 00:36
F23ko:呃.....有沒有例子可以參考? 07/17 01:14
F23ko:直接讀原始碼比較清楚..... 07/17 01:15
yauhh:沒有...思考設計的問題怎麼會是沒事就開始讀碼呢? 07/17 02:02
F23ko:為了避免重新發明輪子..... 07/17 02:30
F23ko:例如我想學「讓程式讀腳本」這個東西時,讀資工的朋友叫我先 07/17 02:34
yauhh:不是,你讀碼就可以把目前討論主題搞得清清楚楚嗎? 應該不是 07/17 02:34
yauhh:做設計,畫圖的時候,也是沒有在發明輪子啊 07/17 02:35
F23ko:去想一個問題:「讓程式從文件檔讀算式,算出答案」 07/17 02:35
F23ko:我直接暴力解,解完之後,他跟我講要用遞回做,也說了語法樹 07/17 02:36
yauhh:對啊,但並不是先去問誰做過sample,要去讀他的碼.那沒用的. 07/17 02:36
F23ko:的概念.... 07/17 02:36
yauhh:對,解算式的確是用語法樹可以做得精簡 07/17 02:37
yauhh:那像"Design Patterns Explained"這樣的書,他自己有個設計 07/17 02:38
F23ko:對啊..... 看別人的sample學經驗會比較好.... 我的經驗不是 07/17 02:39
F23ko:很多..... 07/17 02:39
yauhh:案例交待他本來有什麼設計問題,因為繼承的繁雜而使程式較不 07/17 02:39
yauhh:好管理.然後有一個很打破思考格局的設計方式.這也是可參考的 07/17 02:39
yauhh:相對的,一下子就去找碼來讀,讀出什麼概念則是要擲杯. 07/17 02:40
F23ko:了解.... 07/17 02:41
F23ko:那個有中譯本嗎? 我對英文很頭痛.... 07/17 02:42
F23ko:Google後沒看到.... 07/17 02:42
F23ko:我一直用試誤法摸索的很頭痛,想直接學成果 = = 07/17 02:44
andymai:"深入淺出設計模式"←中文的... 07/17 13:57