在我的程序中有四个标签。 3是独立变量,但第4个是其中一个变量除以100.0,并且工作正常。
我的程序工作正常并运行良好,但我添加了第5个(这是2个变量的乘法),但它不会从0变化。它在程序的代码中位于相同的位置第四,但我仍然无法弄清楚为什么它不会起作用。我能想到的唯一一件事就是我没有重装它,但我看了,我有。我真的被困了所以请有人帮忙吗?这是代码:
import tkinter as tk
from PIL import Image, ImageTk
# --- functions ---
def moar_eggz():
global eggzps, chookz
chookz += 1
def update_labels():
try:
label1.config(text="Eggs: " + str(round(eggz)))
if eggzps >= 10:
label2.config(text="Eggs Per Second: " + str(round(int(eggzps))))
elif eggzps < 10:
label2.config(text="Eggs Per Second: " + str(eggzps))
label3.config(text="Egg Value: " + str(eggvalue))
label4.config(text="Chickens: " + str(chookz))
label5.config(text="Money: " + str(money))
except Exception as e:
print(e) # display exception to see problem
# repeat it after 20ms
root.after(20, update_labels)
def main_loop():
global eggz, eggzps
eggzps = chookz / 100.0
money = eggz * eggvalue
update_labels()
try:
eggz += eggzps
except Exception as e:
print(e) # display exception to see problem
# repeat it after 1000ms
root.after(1000, main_loop)
# --- main ---
root = tk.Tk()
root.title("Chicken Clicker")
eggz = 0
eggvalue = 0.2
chookz = 0
eggzps = 0.0
eggzpms = 0
money = eggz * eggvalue
# empty labels - `update_labels` will add text
label5 = tk.Label(root)
label4 = tk.Label(root)
label3 = tk.Label(root)
label2 = tk.Label(root)
label1 = tk.Label(root)
label5.pack()
label4.pack()
label3.pack()
label2.pack()
label1.pack()
chickencnv = Image.open("img\\1.png")
chicken = ImageTk.PhotoImage(chickencnv)
openbutton6= tk.Button(root, image=chicken, width=500, height=500, command=moar_eggz)
openbutton6.pack()
# run it first time at once
main_loop()
root.mainloop()
我在游戏中尝试了许多更改代码,但都没有改变任何内容,所以我来到这里。
对此主题的任何不相关或相关的答案或建议将受到高度赞赏。
提前致谢!
答案 0 :(得分:2)
您只是忘记在main_loop
中为全局变量添加资金。所以在update_labels
中,它始终是显示的初始值0。
def main_loop():
global eggz, eggzps, money
...