Re: [問題] 請問有沒有現成的「複雜」STG範例?

看板C_Sharp作者 (純潔)時間14年前 (2010/07/16 23:58), 編輯推噓2(2028)
留言30則, 4人參與, 最新討論串3/4 (看更多)
※ 引述《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)

07/17 00:19, , 1F
像敵人的class就用繼承的啊,通通繼承一個Enemy class而來
07/17 00:19, 1F

07/17 00:20, , 2F
這樣,然後技能都繼承Skill class,所以不同的敵人就可以掛
07/17 00:20, 2F

07/17 00:20, , 3F
上不同的技能class之類的
07/17 00:20, 3F

07/17 00:21, , 4F
每個敵人都有Attack method,但是實作內容不同這樣
07/17 00:21, 4F

07/17 00:33, , 5F
前段,遊戲的確是要有個外框架把stage擺好,蠻多書會講框架.
07/17 00:33, 5F

07/17 00:34, , 6F
後段你好像可以參考Design Patterns Explained書中的討論.
07/17 00:34, 6F

07/17 00:36, , 7F
可使用"抽象與實做分開"的設計
07/17 00:36, 7F

07/17 01:14, , 8F
呃.....有沒有例子可以參考?
07/17 01:14, 8F

07/17 01:15, , 9F
直接讀原始碼比較清楚.....
07/17 01:15, 9F

07/17 02:02, , 10F
沒有...思考設計的問題怎麼會是沒事就開始讀碼呢?
07/17 02:02, 10F

07/17 02:30, , 11F
為了避免重新發明輪子.....
07/17 02:30, 11F

07/17 02:34, , 12F
例如我想學「讓程式讀腳本」這個東西時,讀資工的朋友叫我先
07/17 02:34, 12F

07/17 02:34, , 13F
不是,你讀碼就可以把目前討論主題搞得清清楚楚嗎? 應該不是
07/17 02:34, 13F

07/17 02:35, , 14F
做設計,畫圖的時候,也是沒有在發明輪子啊
07/17 02:35, 14F

07/17 02:35, , 15F
去想一個問題:「讓程式從文件檔讀算式,算出答案」
07/17 02:35, 15F

07/17 02:36, , 16F
我直接暴力解,解完之後,他跟我講要用遞回做,也說了語法樹
07/17 02:36, 16F

07/17 02:36, , 17F
對啊,但並不是先去問誰做過sample,要去讀他的碼.那沒用的.
07/17 02:36, 17F

07/17 02:36, , 18F
的概念....
07/17 02:36, 18F

07/17 02:37, , 19F
對,解算式的確是用語法樹可以做得精簡
07/17 02:37, 19F

07/17 02:38, , 20F
那像"Design Patterns Explained"這樣的書,他自己有個設計
07/17 02:38, 20F

07/17 02:39, , 21F
對啊..... 看別人的sample學經驗會比較好.... 我的經驗不是
07/17 02:39, 21F

07/17 02:39, , 22F
很多.....
07/17 02:39, 22F

07/17 02:39, , 23F
案例交待他本來有什麼設計問題,因為繼承的繁雜而使程式較不
07/17 02:39, 23F

07/17 02:39, , 24F
好管理.然後有一個很打破思考格局的設計方式.這也是可參考的
07/17 02:39, 24F

07/17 02:40, , 25F
相對的,一下子就去找碼來讀,讀出什麼概念則是要擲杯.
07/17 02:40, 25F

07/17 02:41, , 26F
了解....
07/17 02:41, 26F

07/17 02:42, , 27F
那個有中譯本嗎? 我對英文很頭痛....
07/17 02:42, 27F

07/17 02:42, , 28F
Google後沒看到....
07/17 02:42, 28F

07/17 02:44, , 29F
我一直用試誤法摸索的很頭痛,想直接學成果 = =
07/17 02:44, 29F

07/17 13:57, , 30F
"深入淺出設計模式"←中文的...
07/17 13:57, 30F
文章代碼(AID): #1CG87053 (C_Sharp)
討論串 (同標題文章)
文章代碼(AID): #1CG87053 (C_Sharp)