Вызов canvas.create_oval(x-5, y-5, x+5, y+5)
ссылается на y
, прежде чем позвонить global y
. Переверните заказ, и вы должны быть в порядке:
def ball():
global y # Could even be done a line later, but it's neater to have it upfront
canvas.delete('all')
canvas.create_oval(x-5, y-5, x+5, y+5)
y = y+5
if y<200:
canvas.after(100, ball)