作者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://webptt.com/cn.aspx?n=bbs/GameDesign/M.1458925921.A.73E.html
1F:推 cjcat2266: revive? 03/26 03:38
2F:推 cjcat2266: 推泛用class搭配data定义物品种类,对designer较友善 03/26 03:40
3F:推 m9731526: 是的,我就是用这种方式 03/26 09:29
4F:→ m9731526: 其实我真的不太清楚一般是怎麽做XD 03/26 09:29
5F:→ m9731526: 谢罗 03/26 09:29
6F:推 tomnelson: 若我的话是会用这篇回文内容的这种方式! 03/26 14:27
7F:推 ddavid: 新进做小Project的话这个方法真的比较容易就是 03/26 18:43
8F:→ ddavid: 只是扩充就必须要嘛让Class本体膨胀,要嘛让继承树越长越 03/26 18:44
9F:→ ddavid: 大就是了,不考虑未来扩充的话这样比较简洁 03/26 18:44
10F:→ KanoLoa: 考虑到以後上资料库,道具上千种的话,这还是要改 03/29 00:13
11F:→ KanoLoa: 不过一般要做大型mmo也会有上一板的做法可以偷看了XD 03/29 00:13