我正在尝试创建一个非常基本的类似 RPG 的游戏,您可以在其中选择一个角色,给该角色一把武器,然后根据角色和武器的统计数据告诉它攻击另一个角色并造成伤害。该类weapon
属于名为 的顶级类Equip
。但是,当我尝试设置包含武器统计数据的攻击伤害变量时,我得到:
'Char' object has no attribute 'weapon.'
我将Char
类weapon
值设置None
为默认值。但在下面,我dean
通过使用dean.weapon = sword
(即 a weapon
)为角色 ( ) 赋予了武器。我试过改成weapon.wgt
,self.weapon.wgt
但这似乎没有帮助。
查看代码的相关部分,省略attack
代码,因为我认为它与问题无关并且会使事情变得混乱,但如果有必要我会这样做。
我相信代码是一团糟,所以建设性的批评将不胜感激。
代码:
class Char(object):
def __init__(self, name):
name = name
hp = 300
mp = 10
strn = 1
dmg = 1
dex = 1
armor = 0
weapon = None
attack_speed = dex
intact_bones = ["right arm", "left arm", "right leg", "leg leg", "skull", "sternum", "nose"] # JUST ASSUME RIGHT SIDE IS PRIMARY SIDE FOR NOW
broken_bones = [] ### define what to do per bone if bone is in this list
dmg = strn * self.weapon.wgt
class Equip(object):
wgt = 1
desc = ""
def __init__(self, name):
self.name = name
class weapon(Equip):
impact = 1
sharp = 1
def __init__(self, name):
self.name = name
sword = weapon("Sword")
sword.wgt = 10
sword.impact = 6
sword.sharp = 7
dean.weapon = sword
dean.attack(hamilton)