我正在制作一个基于文本的Skyrim版本,但我找不到一个让魔法/锻造加成生效的方法。我有武器课和盔甲课。我的游戏中每件武器和盔甲都有一个目标。我的武器属性是名字,基础伤害,锻造加成,附魔和价值。对于护甲来说,属性是名称、槽、基本防御、锻造加成、附魔和价值
您的库存中可以有多个相同的项目,这会造成无法拥有相同项目的不同版本的问题。例如,假设你有两把铁剑,你想附魔一把。如果你使用铁剑结界=[firedamage,20],现在铁剑和你从现在起找到的每把铁剑都会有20点火焰伤害结界。同样的问题发生在锻造中,如果你增强一把铁剑,所有的铁剑都会增强
有人知道解决这个问题的办法吗?我能想到的一个方法是每个对象有1000个版本,每次你得到一个新的,你就会得到下一个对象。例如:你得到的第一把铁剑是ironsword1。下一次你得到一把铁剑,它将是铁剑,这将继续下去,直到你得到1000把铁剑。这显然是非常耗时的实施,我觉得肯定有更好的方法
我认为你可能误解了类是如何工作的,或者更具体地说,误解了类和实例之间的区别
为
Weapon
创建一个类是有意义的,但是如果您不希望IronSword
成为该类的实例,您会希望它成为一个子类。在您的清单中,您将有两个类IronSword
的实例,它们具有特定的魔法。或者,您可能不会为铁剑创建一个显式子类,而只是用参数实例化多个武器,将它们标识为铁剑。但无论哪种方式,一个object
都应该对应于一个对象,即每个库存选项都应该是一个单独的对象下面是一系列非常好的YouTube视频,介绍了Python中的OOP: https://www.youtube.com/watch?v=ZDa-Z5JzLYM
当你将两个实例或一个对象装箱时,它们不是同一件事。让我们坐下来,我有一个通用类三角形,属性是a,b,c。我可以同时有两个不同边长的三角形。一次只能修改一个护甲/武器实例的属性。你能发布一个你的类武器/对象实现的例子吗,这样我们就可以更好地了解你在尝试做什么
编辑:
让我们试着用您的环境来解释类和子类。我们想要定义一个通用的物体叫做武器,它有一些属性来表示伤害和射程
现在我们要创建一个名为swill的子类,它继承泛型类的所有内容,但可以实现更具体的属性和函数
你现在可以在同一个样式中使用这两种武器,对泛型父类进行子类化
我希望你能了解一些这个概念,我建议你从网上的一些教程中了解更多,你可以搜索OOP
相关问题 更多 >
编程相关推荐