自制Cookie Clicker游戏点击无加分,如何实现点击加cookie功能?
问题分析与修复方案
你的Cookie Clicker游戏点击按钮后分数不更新的核心问题是:修改money变量后没有同步更新绑定到标签的StringVar,同时冗余的update()函数并没有起到实际作用。
具体问题点
click()函数中修改了money的值,但从未更新cool这个StringVar,导致标签无法获取新的数值。update()函数是多余的——使用textvariable绑定StringVar后,标签会自动随StringVar的变化刷新,无需重复调用config方法。
修复后的代码
import tkinter from tkinter import * points = 100 money = 100 bonus = 100 def click(): global points global money global bonus points += bonus money += points # 更新StringVar,标签会自动同步显示新数值 cool.set(f'Cookies: {money}') game = Tk() cool = tkinter.StringVar() cool.set(f'Cookies: {money}') # 修正font参数的写法(可选,原写法不影响功能) cookies = Label(game, textvariable=cool, font=("Arial", 14)) cookies.grid(row=0, column=0) cookie = Button(game, text='\nCookie\n', font=("Arial", 20), command=click).grid(row=1, column=0) game.mainloop()
关键修改说明
- 在
click()函数末尾添加cool.set(f'Cookies: {money}'),每次点击按钮后手动更新StringVar,触发标签内容自动刷新。 - 删除了无用的
update()函数和game.after()调用,简化代码逻辑。
内容的提问来源于stack exchange,提问作者User102
相关产品推荐
相关产品推荐

