@@ -47,22 +47,16 @@ def animar(tela, camada_de_atores, fase, passo=0.01, delta_t=0.01):
4747 tempo = 0
4848 passo = int (1000 * passo )
4949 angulo = 0
50+ multiplicador_rebobinar = 20
5051
5152 def _animar ():
5253 nonlocal tempo
54+ nonlocal delta_t
5355 nonlocal angulo
54- camada_de_atores .delete (ALL )
55- camada_de_atores .create_image ((0 , 0 ), image = BACKGROUND , anchor = NW )
5656 tempo += delta_t
57- tamanho_seta = 60
58- angulo_rad = math .radians (- angulo )
59-
60- camada_de_atores .create_line (52 , 493 , 52 + tamanho_seta * math .cos (angulo_rad ),
61- 493 + tamanho_seta * math .sin (angulo_rad ), width = 1.5 )
62- camada_de_atores .create_text (35 , 493 , text = u"%d°" % angulo )
63- for ponto in fase .calcular_pontos (tempo ):
64- plotar (camada_de_atores , ponto )
65-
57+ if tempo <= 0 :
58+ tempo = 0
59+ delta_t /= - multiplicador_rebobinar
6660 if fase .acabou (tempo ):
6761 camada_de_atores .create_image (162 , 55 , image = PYTHONBIRDS_LOGO , anchor = NW )
6862 camada_de_atores .create_image (54 , 540 , image = MENU , anchor = NW )
@@ -72,6 +66,16 @@ def _animar():
7266 img = VOCE_PERDEU
7367 camada_de_atores .create_image (192 , 211 , image = img , anchor = NW )
7468 else :
69+ camada_de_atores .delete (ALL )
70+ camada_de_atores .create_image ((0 , 0 ), image = BACKGROUND , anchor = NW )
71+ tamanho_seta = 60
72+ angulo_rad = math .radians (- angulo )
73+
74+ camada_de_atores .create_line (52 , 493 , 52 + tamanho_seta * math .cos (angulo_rad ),
75+ 493 + tamanho_seta * math .sin (angulo_rad ), width = 1.5 )
76+ camada_de_atores .create_text (35 , 493 , text = u"%d°" % angulo )
77+ for ponto in fase .calcular_pontos (tempo ):
78+ plotar (camada_de_atores , ponto )
7579 tela .after (passo , _animar )
7680
7781 def _ouvir_comandos_lancamento (evento ):
@@ -84,8 +88,12 @@ def _ouvir_comandos_lancamento(evento):
8488 fase .lancar (angulo , tempo )
8589
8690 def _replay (event ):
87- # verificar se a fase ja acabou
88- pass
91+ nonlocal tempo
92+ nonlocal delta_t
93+ if fase .acabou (tempo ):
94+ delta_t *= - multiplicador_rebobinar
95+ _animar ()
96+
8997
9098 def _jogar_novamente (event ):
9199 # verificar se a fase ja acabou
0 commit comments