如何在 Canvas 中重复 def 函数?
How can I repeat a def function in Canvas?
我希望这个 def 函数在球落地后立即重复自身(window 的边界)
我尝试使用 if、for loop 和 while:,但我无法做到工作。我是初学者,所以也许我只是在犯愚蠢的错误。感谢您的帮助。
import tkinter
canvas = tkinter.Canvas(width=600, height=600)
canvas.pack()
def ball():
canvas.delete('all')
global y
canvas.create_oval(x - 5,y - 5,x + 5,y + 5, fill = 'red')
y = y + 2
if y < 600:
canvas.after(2, ball)
y = 0
x=300
ball()
TL;DR: 我想在某个事件后在 Python 中重复一个 def 函数。
我用 python 实现了一个场景,向您展示如何使用 while
循环以及如何使用 return
让您的函数在某些事件后退出循环。
这只是一个更好地理解答案的例子。并且不要在代码中使用全局变量。只是为了举例。
a = 100
def count_down():
global a
a -= 1
if a > 0:
return True
return False
in_the_loop = True
while(in_the_loop):
in_the_loop = count_down()
print(a)
也许这段代码可以让您了解如何通过简单地向 return
添加 return
来退出 base
函数。
听起来您只想重置 y
值:
import tkinter
canvas = tkinter.Canvas(width=600, height=600)
canvas.pack()
def ball():
canvas.delete('all')
global y
canvas.create_oval(x - 5,y - 5,x + 5,y + 5, fill = 'red')
y = y + 2
if y >= 600:
y = 0 # Restart y from 0 again
canvas.after(2, ball)
y = 0
x=300
ball()
我希望这个 def 函数在球落地后立即重复自身(window 的边界) 我尝试使用 if、for loop 和 while:,但我无法做到工作。我是初学者,所以也许我只是在犯愚蠢的错误。感谢您的帮助。
import tkinter
canvas = tkinter.Canvas(width=600, height=600)
canvas.pack()
def ball():
canvas.delete('all')
global y
canvas.create_oval(x - 5,y - 5,x + 5,y + 5, fill = 'red')
y = y + 2
if y < 600:
canvas.after(2, ball)
y = 0
x=300
ball()
TL;DR: 我想在某个事件后在 Python 中重复一个 def 函数。
我用 python 实现了一个场景,向您展示如何使用 while
循环以及如何使用 return
让您的函数在某些事件后退出循环。
这只是一个更好地理解答案的例子。并且不要在代码中使用全局变量。只是为了举例。
a = 100
def count_down():
global a
a -= 1
if a > 0:
return True
return False
in_the_loop = True
while(in_the_loop):
in_the_loop = count_down()
print(a)
也许这段代码可以让您了解如何通过简单地向 return
添加 return
来退出 base
函数。
听起来您只想重置 y
值:
import tkinter
canvas = tkinter.Canvas(width=600, height=600)
canvas.pack()
def ball():
canvas.delete('all')
global y
canvas.create_oval(x - 5,y - 5,x + 5,y + 5, fill = 'red')
y = y + 2
if y >= 600:
y = 0 # Restart y from 0 again
canvas.after(2, ball)
y = 0
x=300
ball()