Форум сайта python.su
![[RSS Feed] [RSS Feed]](/static/djangobb_forum/img/feed-icon-small.png) 
			 
							 0
  0   
								
								Очень интересует вопрос параллельного исполнения нескольких функций, вот простой пример программы: из танка вылетают снаряды, каждый последующий останавливает движение предыдущего, пока последующий не пролетит, предыдущий не может продолжить свое движение. Прошу пояснить, как запараллелить процессы, чтобы не было видимых пауз.
Код ниже.
from tkinter import * from time import sleep root=Tk() c = Canvas(width=460,height=460,bg='grey80') c.pack() x=10 y=10 predmet1=c.create_rectangle(x,y,x+100,y+40,tag='tank',fill="gray") oval=c.create_oval(x+45,y+10,x+75,y+30,tag='tank') predmet2=c.create_rectangle(x+75,y+17,x+110,y+23,tag='tank',fill="gray") def funk(event): predmet4=c.create_rectangle(x+110,y+17,x+117,y+23,fill="gray80",outline="gray80") while True: c.itemconfig(predmet4,fill="black") c.move(predmet4,5,0) c.update() sleep(0.02) c.focus_set() c.bind('<Button-1>',funk) root.mainloop()
Офлайн
 
							 857
  857   
								
								Konstantin1984+В питоне есть модуль threading. Но разобраться в этой теме будет не так просто. Надо прочитать несколько толстых книжек.
Прошу пояснить, как запараллелить процессы, чтобы не было видимых пауз.
Отредактировано py.user.next (Ноя. 5, 2024 03:10:03)
Офлайн
 
							 72
  72   
								
								Всё намного проще — нужно использовать tag:
def funk(event): # predmet4=c.create_rectangle(x+110,y+17,x+117,y+23,fill="gray80",outline="gray80") predmet4=c.create_rectangle(x+110,y+17,x+117,y+23, tag='shell', fill="gray80",outline="gray80") # добавить tag while True: c.itemconfig(predmet4, fill="black") # c.move(predmet4, 5, 0) c.move("shell", 5, 0) # использовать tag c.update() sleep(0.02)
Офлайн
 
							 0
  0   
								
								Спасибо!
Офлайн
![[RSS Feed] [RSS Feed]](/static/djangobb_forum/img/feed-icon-small.png)