Re: [程式] 請教 RPG 的基礎問題:items

看板GameDesign (遊戲設計)作者 (亞龍)時間9年前 (2016/03/26 01:12), 編輯推噓5(506)
留言11則, 5人參與, 最新討論串1/1
※ 引述《m9731526 (#3371)》之銘言: 長話短說: 買RPGMaker(欸 : 一般都是怎麼寫物品這種大量項目的? : Item : - Consumable : -- Potion : -- Throwable : - Equipment : - Tool : 這樣子逐級繼承類別的方式,應該沒什麼問題? 是沒什麼問題 : 但是如果要逐一為每個物品寫 class 感覺效率不佳…… 應該是我誤會...還是你真的以為100個道具就需要100個class? 實際上遊戲的資料庫是透過讀檔沒錯(我是有遇過寫在code中的-_- 從架構上來差別並不多 像是"紅水"/"藍水"/"聖水", table建起來可能是 id | name | type | add_hp | add_mp | revine | =============================================== 1 | 紅水 | potion | 100 | | | ----------------------------------------------- 2 | 藍水 | potion | 0 | 100 | | ----------------------------------------------- 3 | 聖水 | potion | 100 | 100 | true | 也可以寫成json { id:1, name:"紅水", type:"potion", useEffect:{ hp:100 } }, { id:2, name:"藍水", type:"potion", useEffect:{ mp:100 } }, { id:3, name:"聖水", type:"potion", useEffect:{ hp:100, mp:100, "revine":true } } 整合起來會變成像 class Potion { int id; string name; int hp; int mp; bool revine; void useOn(Character character){ character.hp += this.hp; character.mp += this.mp; if(this.revine){ character.revine(); } } } 不太確定有沒有解答到你的問題? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.228.144.28 ※ 文章網址: https://www.ptt.cc/bbs/GameDesign/M.1458925921.A.73E.html

03/26 03:38, , 1F
revive?
03/26 03:38, 1F

03/26 03:40, , 2F
推泛用class搭配data定義物品種類,對designer較友善
03/26 03:40, 2F

03/26 09:29, , 3F
是的,我就是用這種方式
03/26 09:29, 3F

03/26 09:29, , 4F
其實我真的不太清楚一般是怎麼做XD
03/26 09:29, 4F

03/26 09:29, , 5F
謝囉
03/26 09:29, 5F

03/26 14:27, , 6F
若我的話是會用這篇回文內容的這種方式!
03/26 14:27, 6F

03/26 18:43, , 7F
新進做小Project的話這個方法真的比較容易就是
03/26 18:43, 7F

03/26 18:44, , 8F
只是擴充就必須要嘛讓Class本體膨脹,要嘛讓繼承樹越長越
03/26 18:44, 8F

03/26 18:44, , 9F
大就是了,不考慮未來擴充的話這樣比較簡潔
03/26 18:44, 9F

03/29 00:13, , 10F
考慮到以後上資料庫,道具上千種的話,這還是要改
03/29 00:13, 10F

03/29 00:13, , 11F
不過一般要做大型mmo也會有上一板的做法可以偷看了XD
03/29 00:13, 11F
文章代碼(AID): #1MzN5XS- (GameDesign)
文章代碼(AID): #1MzN5XS- (GameDesign)