@@ -96,8 +96,7 @@ def foi_lancado(self):
9696
9797 :return: booleano
9898 """
99- return True
100-
99+ return not self ._tempo_de_lancamento is None
101100 def colidir_com_chao (self ):
102101 """
103102 Método que executa lógica de colisão com o chão. Toda vez que y for menor ou igual a 0,
@@ -120,7 +119,10 @@ def calcular_posicao(self, tempo):
120119 :param tempo: tempo de jogo a ser calculada a posição
121120 :return: posição x, y
122121 """
123- return 1 , 1
122+ if self .foi_lancado ():
123+ delta_t = tempo - self ._tempo_de_lancamento
124+ self ._calcular_posicao_vertical (delta_t )
125+ return super ().calcular_posicao (tempo )
124126
125127
126128 def lancar (self , angulo , tempo_de_lancamento ):
@@ -132,11 +134,21 @@ def lancar(self, angulo, tempo_de_lancamento):
132134 :param tempo_de_lancamento:
133135 :return:
134136 """
135- pass
137+ self .angulo_de_lancamento = angulo
138+ self ._tempo_de_lancamento = tempo_de_lancamento
139+
140+ def _calcular_posicao_vertical (self , delta_t ):
141+ y_atual = self ._y_inicial
142+ angulo_radianos = math .radians (self .angulo_de_lancamento )
143+ y_atual += self .velocidade_escalar * delta_t * math .sin (angulo_radianos )
144+ y_atual -= (GRAVIDADE * (delta_t ** 2 )) / 2
145+ self .y = y_atual
136146
137147
138148class PassaroAmarelo (Passaro ):
139- pass
149+ _caracter_ativo = 'A'
150+ _caracter_destruido = 'a'
151+ velocidade_escalar = 30
140152
141153
142154class PassaroVermelho (Passaro ):
0 commit comments