提前感谢您的阅读和/或回复。我对编程很陌生。
假设我有一个玩家类,它使用ABC类型的武器对象作为成员。
class Player
{
private:
Weapon * mainHand; // I think this is what I want?
};
但我希望指定任何派生类类型,例如俱乐部或匕首。如何将新对象分配给它?正如您可能已经猜到的,我希望用户能够做出一个运行时决定“装备”多个可用对象。
不管怎么说,我已经尝试了大约两个星期来通过阅读论坛上的东西来解决这个问题,但我只是失败了。谢谢你帮我。
我正在为我的游戏的库存系统工作,我感兴趣的是如何实现额外的武器和装甲属性,不只是伤害或装甲?
如果我只有伤害和盔甲,那么方程很简单:伤害=武器伤害-装甲;
但我正在寻找一个更有趣的用户体验--即有2-3个属性的项目,可以修改各种游戏机制。
例如,我可以使用一系列标志,并在我的攻击方法中编写一个大if/ use语句,并在适当的点检查所有这些:
如果(武器是吸血鬼){治疗攻击x}
如果(武器神圣){检查防御类型,增加额外伤害}
如果(盔甲先吸收x点伤害){减少防御方x}的伤害
我认为可能更好的另一种方法是装饰设计模式 --将一种武器的输出逐步封装到另一种武器中:
public class Main
我问了一个关于使用策略模式和LSP的问题,但是答案参差不齐,从长远来看,这不是个好主意。然而,在我的问题末尾有一条评论说,虽然我没有违反,但我违反了LSP
客户端不应该被迫实现他们不使用的接口。而不是一个fat接口,许多小接口是首选的基于方法组,每个为一个子模块服务。
假设我有一个这样的武器类:
public final Weapon{
private final String name;
private final int damage;
private final List<AttackStrategy> validactions;
p
因此,我正致力于在上扩展项的用途,但我不太确定如何在我们使用的关系数据库中灵活地表示它们。
我可能找错了方向,所以你可以在其他方面提出建议,但目前我认为每个项目都应该有相关的“标签”。
例如,Katana当前是"items“数据库中的一行。为了把它变成武器和可拿的东西,我想我应该有一个“特征”的数据库,以及一个连接两者的item_traits表。
// Objects and their basic data
item_id | item | material | etc
1 | Naginata | steel | etc
// Things that objects can