【发布时间】:2020-05-19 15:47:44
【问题描述】:
遗憾的是,这个问题有点误导。我找不到问我问题的好方法。 我正在制作一个基于文本的小型 rpg。 我不知道怎么说“嘿,这个敌人已经生成,加载它的属性。”
我有:
class Entity:
def __init__(self, ID, name, maxhealth, health, strength, defence, strBuff, defBuff):
self.ID = ID
self.name = name
self.maxhp = maxhealth
self.hp = health
self.Str = strength
self.Def = defence
self.strBuff = strBuff
self.defBuff = defBuff
class Monster(Entity):
pass
Goblin = Monster(0, "Goblin", 10, 10, 5, 2, 0, 0)
goblin = {"ID": Goblin.ID, "name": Goblin.name, Goblin.hp: 10, Goblin.Str: 5, Goblin.Def: 2, Goblin.strBuff: 0, Goblin.defBuff: 0}
Satyr = Monster(1, "Satyr", 5, 5, 3, 6, 0, 0)
satyr = {"ID": Satyr.ID, "name": Satyr.name, Satyr.hp: 5, Satyr.Str: 3, Satyr.Def: 6, Satyr.strBuff: 0, Satyr.defBuff: 0}
而且我找不到类似的说法。
Monster.hp -= Player.Str
我似乎只能对指定的敌人这样做。
【问题讨论】:
-
我猜
Goblin应该是Monster的子类,而goblin是Goblin的一个实例。然后你可以简单地做goblin.hp -= player.str。 -
Goblin和goblin之间的预期区别是什么?为什么一个是Monster类实例,另一个是字典? -
我实际上就是这样,我的问题是它不适用于色狼。我想取当前怪物的血量并从中减去,而不仅仅是地精的
标签: python python-3.x class attributes