草庐IT

c# - 为 "character"设计一种干净/灵活的方式来在角色扮演游戏中施放不同的法术

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭3年前。Improvethisquestion我正在制作一款角色扮演游戏,既是为了好玩,也是一种学习体验。我正处于我的角色(巫师)施法的阶段。我正在使用策略模式来设置他们在施放法术之前要施放的法术。我采用这种方法的原因是因为我希望以后能够添加不同的法术类型,而不必弄乱角色/向导类。我的问题-这是一个糟糕的设计吗?是否有更好/更清洁/更简单的方法?我正在努力避免成为试图让一切都符合设计模式的“那个人”。但在这种情况下,我觉得它很合适。到目前为止,这是我

java - 面向对象设计 - 法术

我的第一个Java项目是一个基本的角色扮演游戏。现在我在研究法术,我需要一些OOD指导。我有Character,它是一个抽象类。Character有一些子类(比如mage、fighter、rogue、牧师).法师和牧师(至于现在,牧师没有法力,但它可能会改变)都是施法者。我还有一个Spell类,其中包含一些信息(例如spellname、manacost等)。MageSpellsList和ClericSpellsList是另外两个类,它们都有Spell类列表。我也有Effects类(施法应该使用它)。什么是处理法术的良好面向对象设计(解决方案不应包括Effects类,我可以稍后处理)?也

java - Java编程实践: stacking enums and enum constructors,和子类化哪个更好?

给定有限数量的不同种类的项目,用堆叠枚举和枚举构造函数表示它们更好,还是将它们子类化更好?还是有更好的方法?为了给您一些背景信息,在我的小型RPG程序(具有讽刺意味的是它应该很简单)中,一个角色的元素栏中有不同种类的元素。项目根据其类型、用途和效果而有所不同。例如,元素栏中的一项是名为Gremlin的法术卷轴,可调整Utility属性。另一个项目可能是一把名为Mort的剑,用于战斗并造成伤害。在我的RPG代码中,我现在尝试了两种表示库存项目的方法。一种方法是子类化(例如,InventoryItem->Spell->AdjustingAttributes;InventoryItem->W

sql - 避免在一个查询中多次使用同一个子查询

在我正在重构的MMORPG服务器中,我有两个表。一种用于元素,一种用于法术。每个项目最多有5个法术,所以我采用了稀疏矩阵格式,有5列用于法术ID。该结构的最初设计者选择使用不支持引用的MyISAM,导致项目表包含具有不存在的法术ID的项目。我希望找出哪些项目具有不正确的拼写ID,以便修复它们,并可能从长远来看转换为InnoDB。到目前为止,我只能想出这个:SELECTCOUNT(*)FROMitemsWHEREspellid_1NOTIN(SELECTentryFROMresearch.spell)ORspellid_2NOTIN(SELECTentryFROMresearch.spe

[征途外挂制作记二]

书接上回,经过解包获得一堆文件,通过UE看了之后发现有用的都是tbl文件,文件是明文就是格式诡异;根据经验判断应该xml文件格式,于是乎处理成xml文件后就比较方便阅读了。[NpcBase]...[skillbase]...[ObjectBase]....通过以上三个文件就获取到征途NPC表格,技能表格,道具表格;不玩游戏嘛,你也能大概知道这些玩意儿代表什么了,就让你方便理解游戏;

[征途外挂制作记二]

书接上回,经过解包获得一堆文件,通过UE看了之后发现有用的都是tbl文件,文件是明文就是格式诡异;根据经验判断应该xml文件格式,于是乎处理成xml文件后就比较方便阅读了。[NpcBase]...[skillbase]...[ObjectBase]....通过以上三个文件就获取到征途NPC表格,技能表格,道具表格;不玩游戏嘛,你也能大概知道这些玩意儿代表什么了,就让你方便理解游戏;