我正在創建一個「寵物遊戲」,以訓練我在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
根據它的公式自動更新自己?
所有這些神奇數字......那些真正想住在一個配置文件恕我直言。 – Kevin
我同意,但我也嘗試在剛回答問題時不重寫代碼,以便重寫的代碼不會混淆OP。 – Karin