作者dreamnook (亞龍)
看板GameDesign
標題Re: [程式] 請教 RPG 的基礎問題:items
時間Sat Mar 26 01:11:58 2016
※ 引述《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
推 cjcat2266: revive? 03/26 03:38
推 cjcat2266: 推泛用class搭配data定義物品種類,對designer較友善 03/26 03:40
推 m9731526: 是的,我就是用這種方式 03/26 09:29
→ m9731526: 其實我真的不太清楚一般是怎麼做XD 03/26 09:29
→ m9731526: 謝囉 03/26 09:29
推 tomnelson: 若我的話是會用這篇回文內容的這種方式! 03/26 14:27
推 ddavid: 新進做小Project的話這個方法真的比較容易就是 03/26 18:43
→ ddavid: 只是擴充就必須要嘛讓Class本體膨脹,要嘛讓繼承樹越長越 03/26 18:44
→ ddavid: 大就是了,不考慮未來擴充的話這樣比較簡潔 03/26 18:44
→ KanoLoa: 考慮到以後上資料庫,道具上千種的話,這還是要改 03/29 00:13
→ KanoLoa: 不過一般要做大型mmo也會有上一板的做法可以偷看了XD 03/29 00:13