@@ -107,7 +107,8 @@ def colidir_com_chao(self):
107
107
o status dos Passaro deve ser alterado para destruido, bem como o seu caracter
108
108
109
109
"""
110
- pass
110
+ if self .y <= 0 :
111
+ self .status = DESTRUIDO
111
112
112
113
def calcular_posicao (self , tempo ):
113
114
"""
@@ -123,7 +124,7 @@ def calcular_posicao(self, tempo):
123
124
:param tempo: tempo de jogo a ser calculada a posição
124
125
:return: posição x, y
125
126
"""
126
- if self .foi_lancado ():
127
+ if self .esta_voando ():
127
128
delta_t = tempo - self ._tempo_de_lancamento
128
129
self ._calcular_posicao_vertical (delta_t )
129
130
self ._calcular_posicao_horizontal (delta_t )
@@ -140,21 +141,24 @@ def lancar(self, angulo, tempo_de_lancamento):
140
141
:return:
141
142
"""
142
143
self ._tempo_de_lancamento = tempo_de_lancamento
143
- self ._angulo_de_lancamento = angulo
144
+ self ._angulo_de_lancamento = math . radians ( angulo )
144
145
145
146
def _calcular_posicao_vertical (self , delta_t ):
146
147
y_atual = self ._y_inicial
147
- angulo_radianos = math . radians ( self ._angulo_de_lancamento )
148
+ angulo_radianos = self ._angulo_de_lancamento
148
149
y_atual += self .velocidade_escalar * delta_t * math .sin (angulo_radianos )
149
150
y_atual -= (GRAVIDADE * delta_t ** 2 )/ 2
150
151
self .y = y_atual
151
152
152
153
def _calcular_posicao_horizontal (self , delta_t ):
153
154
x_atual = self ._x_inicial
154
- angulo_radianos = math . radians ( self ._angulo_de_lancamento )
155
+ angulo_radianos = self ._angulo_de_lancamento
155
156
x_atual += self .velocidade_escalar * delta_t * math .cos (angulo_radianos )
156
157
self .x = x_atual
157
158
159
+ def esta_voando (self ):
160
+ return self .foi_lancado () and self .status == ATIVO
161
+
158
162
159
163
class PassaroAmarelo (Passaro ):
160
164
_caracter_ativo = 'A'
0 commit comments