繁体   English   中英

我的变量在标签上不会更改吗? (蟒蛇)

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM