尝试绑定 p 以暂停和取消暂停我的 Tkinter 游戏
Trying to bind p to pause and unpause my Tkinter game
我目前正在 Tkinter 中制作 Snake,我想绑定 p 按钮来暂停我的贪吃蛇游戏,当用户再次按下 p 时,它应该会取消暂停。
这是一些示例代码
def pause(is_paused):
global paused
paused = is_paused
if (paused == True):
paused = False
else:
# Somehow pause my game
paused = True
def snakeMove():
... #Lines of code to move snake
master.after(50, snakeMove) # snakeMove is the function for moving the snake
canvas.bind("<p>", pause)
global paused
paused = False
master.mainloop()
目前我可以让游戏暂停,但不能取消暂停。
此代码段将暂停并释放函数 snakeMove
中的任何 activity。
解除暂停后需要重新启动after
。
你还需要确保 canvas 有焦点,否则按键输入将不起作用。
bound = None
paused = False
def pause(event):
global paused
paused = (paused == False)
if not paused:
print("Unpaused")
bound = master.after(50, snakeMove)
def snakeMove():
global bound
if paused:
master.after_cancel(bound)
print("Paused")
else:
bound = master.after(50, snakeMove) # snakeMove is the function for moving the snake
canvas.bind("<Key-p>", pause)
bound = master.after(150, snakeMove)
canvas.focus_force()
master.mainloop()
我目前正在 Tkinter 中制作 Snake,我想绑定 p 按钮来暂停我的贪吃蛇游戏,当用户再次按下 p 时,它应该会取消暂停。
这是一些示例代码
def pause(is_paused):
global paused
paused = is_paused
if (paused == True):
paused = False
else:
# Somehow pause my game
paused = True
def snakeMove():
... #Lines of code to move snake
master.after(50, snakeMove) # snakeMove is the function for moving the snake
canvas.bind("<p>", pause)
global paused
paused = False
master.mainloop()
目前我可以让游戏暂停,但不能取消暂停。
此代码段将暂停并释放函数 snakeMove
中的任何 activity。
解除暂停后需要重新启动after
。
你还需要确保 canvas 有焦点,否则按键输入将不起作用。
bound = None
paused = False
def pause(event):
global paused
paused = (paused == False)
if not paused:
print("Unpaused")
bound = master.after(50, snakeMove)
def snakeMove():
global bound
if paused:
master.after_cancel(bound)
print("Paused")
else:
bound = master.after(50, snakeMove) # snakeMove is the function for moving the snake
canvas.bind("<Key-p>", pause)
bound = master.after(150, snakeMove)
canvas.focus_force()
master.mainloop()