- 0
- 0
- 约5.72千字
- 约 11页
- 2018-08-31 发布于江苏
- 举报
奇幻RPG(物品锻造 和 Decorator模式)
引言
物品锻造是各类奇幻游戏中的常见功能,就拿众所周知的Diablo来说吧。假设角色拥有一把单手剑,可能基础攻击力只有13,但是它有三个装备孔。当给剑镶嵌一颗蓝宝石的时候,它就拥有了额外的冰冻效果并多加2点攻击力;当给剑镶嵌一颗红宝石的时候,它又拥有了额外的火焰伤害并多加3点攻击力;当给剑镶嵌一颗绿宝石的时候,它又拥有了额外的中毒伤害并多加的4点攻击力。当然,也可以三个孔都镶嵌同一色的宝石。本文将说明如何使用Decorator模式来完成这样的设计。
使用继承来扩展
我们首先想到应该有个基类 Weapon,它供所有各式各样的武器继承,比如说Sword、Axe、Bow。Description字段代表武器的说明,比如“One-Hand light Sword”,Damage()方法则用于获取武器的伤害,GetDescription用于获取武器的说明。在不考虑宝石的情况下,我们得到下面的设计:
现在我们考虑如何创建镶嵌有宝石的武器。我们首先考虑到可以用继承来实现这样的设计,结果却发现如果我们需要定义所有嵌宝石的剑(Sword),就需要3+6+7 = 16个类(NOTE:三个物品孔,每个孔都有 蓝、红、绿 三种选择,可以两个或者三个孔同一色),如果我们给镶嵌了两颗蓝一颗红宝石的剑命名为 Blue2RedSword,给三色不同不剑命名为BlueRedGreenSword,其余的类推。那么,我们
您可能关注的文档
最近下载
- 2023年惠州市惠东县医疗卫生事业单位(县域医共体)招聘笔试真题.docx VIP
- 逻辑哲学论中文版分享.pdf VIP
- 2024年江苏省泰州市中考地理试题卷(含答案).docx
- 新版《建筑业企业资质标准》建市159号.doc
- 老山自行车馆结构及抗震性能剖析.ppt VIP
- 惠州市惠东县医疗卫生事业单位招聘笔试真题2024.pdf VIP
- 2025年中国—马来西亚钦州产业园区管理委员会选聘人才20人笔试备考题库附答案详解.docx VIP
- 现代文阅读答题的18个套路.pptx VIP
- 2024年江苏省泰州市中考生物试题卷(含答案解析).docx
- 期末基础模拟卷(试卷)2025-2026学年六年级语文下册统编版(含答案).docx VIP
原创力文档

文档评论(0)