Я хотел бы иметь возможность вызывать подпрограмму с переданным ей экземпляром класса, а затем использовать строку с именем экземпляра, чтобы определить, какая метка tkinter обновляется.
Я знаюэто странно конкретный и запутанный способ спросить что-то, что, вероятно, довольно просто, но я плохо формулирую то, что мне нужно, в Google.
Я делаю игру, вдохновленную радиоактивными осадками, и я хотел бы позволитьигрок выбирает врага для стрельбы и обновляет счетчик здоровья.До сих пор у меня есть все математические вычисления для подпрограммы съемки вниз, я просто не знаю, как нацелить правильный виджет надписи в конце
from tkinter import *
Root = Tk()
PlrWeapon = ["Pipe Revolver Rifle",6,5,0]
class Raider:
Species = "Human"
def __init__(self, Name, Level, MaxHealth, Health, Alive, Unique, Weapon, Armour):
self.Name = Name
self.Level = Level
self.MaxHealth = MaxHealth
self.Health = Health
self.Alive = Alive
self.Unique = Unique
self.Weapon = Weapon
self.Armour = Armour
def Shoot(self):
Damage = 0
for i in range(1,4):
Difference = PlrWeapon[i] - self.Armour[i]
if Difference >= 0:
Damage = Damage + Difference
self.Health = self.Health - Damage
if self.Health <= 0:
self.Alive = False
Enemy1 = Raider("Tessa",
5,
50,
50,
True,
False,
["Pipe Pistol",3,2,0],
["Armourless",0,0,0])
Enemy2 = Raider("Bobby",
5,
50,
50,
True,
False,
["Pipe Rifle",5,4,0],
["Leather",2,3,1])
Shoot(Enemy1)
Enemy1Name = Label(Root, text=Enemy1.Name)
Enemy1Name.grid(row=0, column=0)
Enemy1Health = Label(Root, text=Enemy1.Health)
Enemy1Health.grid(row=0, column=1)
Enemy2Name = Label(Root, text=Enemy2.Name)
Enemy2Name.grid(row=1, column=0)
Enemy2Health = Label(Root, text=Enemy2.Health)
Enemy2Health.grid(row=1, column=1)
Root.mainloop()
, в идеале в конце процедуры Shoot()
быть частью, которая действовала так
def Shoot(self):
Damage = 0
for i in range(1,4):
Difference = PlrWeapon[i] - self.Armour[i]
if Difference >= 0:
Damage = Damage + Difference
self.Health = self.Health - Damage
if self.Health <= 0:
self.Alive = False
## start of wishful thinking ##
str(self)+"Health".config(text=self.Health)
Если вы понимаете, о чем я пытаюсь сообщить, и у меня есть решение, я был бы очень признателен за помощь.Спасибо.