@@ -106,7 +106,8 @@ def colidir_com_chao(self):
106106 o status dos Passaro deve ser alterado para destruido, bem como o seu caracter
107107
108108 """
109- pass
109+ if self .y <= 0 :
110+ self .status = DESTRUIDO
110111
111112 def calcular_posicao (self , tempo ):
112113 """
@@ -122,9 +123,10 @@ def calcular_posicao(self, tempo):
122123 :param tempo: tempo de jogo a ser calculada a posição
123124 :return: posição x, y
124125 """
125- if self .foi_lancado ():
126+ if self ._esta_voando ():
126127 delta_t = tempo - self ._tempo_de_lancamento
127128 self ._calcular_posicao_vertical (delta_t )
129+ self ._calcular_posicao_horizontal (delta_t )
128130 return super ().calcular_posicao (tempo )
129131
130132
@@ -137,15 +139,25 @@ def lancar(self, angulo, tempo_de_lancamento):
137139 :param tempo_de_lancamento:
138140 :return:
139141 """
140- self ._angulo_de_lancamento = angulo
142+ self ._angulo_de_lancamento = math . radians ( angulo )
141143 self ._tempo_de_lancamento = tempo_de_lancamento
142144
143145 def _calcular_posicao_vertical (self , delta_t ):
144- angulo_radianos = math . radians ( self ._angulo_de_lancamento )
146+ angulo_radianos = self ._angulo_de_lancamento
145147 y_atual = self ._y_inicial + self .velocidade_escalar * delta_t * math .sin (angulo_radianos )
146148 y_atual -= (GRAVIDADE * (delta_t ** 2 )) / 2
147149 self .y = y_atual
148150
151+ def _calcular_posicao_horizontal (self , delta_t ):
152+ angulo_radianos = self ._angulo_de_lancamento
153+ x_atual = self ._x_inicial
154+ x_atual += self .velocidade_escalar * delta_t * math .cos (angulo_radianos )
155+ self .x = x_atual
156+
157+ def _esta_voando (self ):
158+ return self .foi_lancado () and self .status == ATIVO
159+
160+
149161class PassaroAmarelo (Passaro ):
150162 _caracter_ativo = 'A'
151163 _caracter_destruido = 'a'
0 commit comments