我正在创建一个“宠物游戏”来训练我的python计算技能(这只是一个借口:因为它很有趣)
我决定做一个简单的RPG游戏。为此,我定义了类英雄:
class hero:
#Common class for the main character
def __init__(self, name, lvl, str, agi, vit, int, luk, prof):
self.name = name
self.lvl = lvl
self.str = str
self.agi = agi
self.vit = vit
self.int = int
self.luk = luk
self.prof = prof
self.exp = 0
if prof==1:
self.dmg=3*(self.str)+1*(self.agi)
self.skillList=['heavySlash01']
self.strUp=3
self.agiUp=1
self.vitUp=2
self.intUp=1
self.lukUp=1
if prof==2:
self.dmg=1*(self.str)+3*(self.agi)
self.skillList=['doubleAttack02']
self.strUp=1
self.agiUp=3
self.vitUp=1
self.intUp=1
self.lukUp=2
if prof==3:
self.dmg=4*(self.int)
self.skillList=['fireBall03']
self.strUp=1
self.agiUp=1.5
self.vitUp=0.5
self.intUp=3.5
self.lukUp=1.5
self.hp=19*vit
然而,我注意到每当英雄升级时,我需要分别更新它的所有状态。例如,我需要手动更新hero.dmg
。改变agi
、str
和int
并没有像我预期的那样自动改变dmg
那么,我的问题是:有没有办法使dmg
根据其公式自动更新自身
最好在您的案例中使用继承:
使
dmg
成为属性,而不是__init__
函数中的设置。__init__
只在实例初始化时运行,这就是为什么没有更新。但是,使其成为属性会在每次访问该属性时运行该方法相关问题 更多 >
编程相关推荐