[英]My Variable won't change on a label? (python)
在我的程序中有四个标签。 3是独立变量,但第4个变量是其中一个变量除以100.0,可以正常工作。
我的程序运行良好且运行良好,但我添加了5号(这是2个变量的乘积),但它并未从0改变。它在程序代码中与4号相同,但是我仍然可以不知道为什么它不起作用。 我唯一能想到的是我没有重新加载它,但是我看了就知道了。 我真的被卡住了,所以有人可以帮忙吗? 这是代码:
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()
我曾尝试对游戏中的代码进行许多更改,但是所有更改均未完成,因此我来到了这里。
对该主题的任何不相关或相关的答案或建议,我们将不胜感激。
提前致谢!
您只是忘了在main_loop
的全局变量中加钱。 因此,在update_labels
,始终显示其初始值0。
def main_loop():
global eggz, eggzps, money
...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.