Я написал этот код, который создает овал в tkinter. При нажатии мыши овал создает новые координаты для себя, а затем начинает пульсировать.Python: как остановить циклическую функцию внутри функции?
Это выглядит следующим образом: 1.the овала создается по умолчанию 2.А мыши, функция «нажми» называются 3. Функции нажмите генерирует новые координаты, рисует овал, а затем начинает пульсирующее зацикливание эффект. 4. Теперь я должен быть в состоянии и могу снова щелкнуть на пульсирующем овале, переместить овал в новое место, а затем снова опустить новый овал (пульсировать).
def click(event):
pick = 2
counter = 0
esimene_x1 = randint(0, w-100)
esimene_y1 = randint(0, h-100)
teine_x1 = esimene_x1
teine_y1 = esimene_y1
canvas.coords(circle1, esimene_x1, esimene_y1, teine_x1, teine_y1)
pulsate(esimene_x1, esimene_y1, teine_x1, teine_y1, pick, counter)
def pulsate(esimene_x1, esimene_y1, teine_x1, teine_y1, pick, counter):
if pick % 2 == 0:
esimene_x1 -= 1
esimene_y1 -= 1
teine_x1 += 1
teine_y1 += 1
counter += 1
if counter == 40:
pick += 1
elif pick % 2 != 0:
esimene_x1 += 1
esimene_y1 += 1
teine_x1 -= 1
teine_y1 -= 1
counter -=1
if counter == 0:
pick += 1
s = esimene_x1, esimene_y1, teine_x1, teine_y1, pick, counter
canvas.coords(circle1, esimene_x1,esimene_y1, teine_x1,teine_y1)
raam.after(50, pulsate, *s)
Однако, когда я снова нажмите на пульсирующем овала сейчас, это своего рода ошибки, и это выглядит как предыдущая функция для цикла пульсирующего эффекта все еще делает свое дело и новый пульсирующей начинается в разных координатах. Итак, мой вопрос: как остановить функцию от циклирования (пульсирования), когда эта функция находится в функции, и я хочу снова запустить первую функцию. (Создать, новые координаты и начать пульсирующий над)
Вот файл, который вы можете запустить и посмотреть именно то, что, кажется, происходит:
https://mega.co.nz/#!e5pj0brC!QW6R4X9WTshOCh3FTybLrQu_oI0OOU6wL5QI61punUE
Кроме того, если вы видите что-нибудь еще, что, кажется, быть причиной этой ошибки, тогда дайте мне знать, пожалуйста. Я еще не получил знания о потоковом и классе в python, но если это единственное решение, сообщите мне об этом! Else был бы признателен, если бы его можно было управлять с помощью более простых методов!
спасибо!
Эй, чувак, спасибо большое: D! Работает как шарм <3 :) – user2919805