我有一个学校项目,这是一个游戏围绕着点击一个目标,随机产卵为基础的程序。当前,当我单击目标时,什么都没有发生,也没有指向hitcounter函数。我的笔记本电脑有点慢,但每当我试图点击按钮,也没有登记的点击图形。你知道吗
我尝试过冗余地使用lambda,但没有解决这个问题,但是我看到有两个人请求我的函数,我在单击按钮后调用了这个函数,所以我提供了它。如果有任何进一步的疑问,请询问,我不会失去这个帐户。你知道吗
...
def hitcounter(*args):
print(" wdwd ")
hitcounter += 1
canvas.delete("counter1_")
counter1_ = canvas.create_text(screenwidth-50,screenheight/4,fill="Blue",font="Times 20",text="HiTS:"+'\n '+str(hitcounter), tag='counter1')
#as requested, I hope this helps thanks!
spawntarget()
def spawntarget():
print("spawntarget")
x_target = random.randint(75,screenwidth-75-50)
y_target = random.randint(75,screenheight-75-100)
global clicktarget
clicktarget=Button(root ,text='ENEMY', width=10, height=10, command = hitcounter)
clicktarget.configure(fg='red', bg='gold')
print("spawntarget2")
while True:
clicktarget.place(x=x_target,y=y_target)
canvas.update()
time.sleep(3)
x_target = random.randint(75,screenwidth-75-50)
y_target = random.randint(75,screenheight-75-100)
root.mainloop()
#I want my button to be clicked and
#call upon the hitcounter function,
#but currently it does not and there
#is no error message. Thanks for looking at my problem.
你不应该那样睡你的节目。在下面的方法之后使用tkinters。after方法将函数调用插入mainloop。你知道吗
您可以使用画布项目作为移动的目标,而无需销毁和重新创建它。在下面的例子中,目标是一个圆,因此我可以通过测量与目标的距离,并将其与目标的半径进行比较,来确定命中是否成功。(您还可以使用其他
tk.canvas
方法来判断您的单击是否在某个项目上)。你知道吗tkinter有一些特殊的变量
tk.IntVar
,您可以将这些变量与标签一起使用,以保持点击次数的计数并显示它。这消除了对丑陋的global
声明的需要。你知道吗不建议使用
time.sleep
和canvas.update
;您可以使用mainloop
来管理游戏的逻辑。你知道吗作为游戏的一个扩展,你可以减少目标的大小,减少静止时间,因为猎人积累了成功的命中率(我把这个留给你去实现)
相关问题 更多 >
编程相关推荐