Skip to content

Commit 075419e

Browse files
author
renzon
committed
Refatorando código de atores
1 parent cc79d45 commit 075419e

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

atores.py

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -40,11 +40,7 @@ def colidir(self, outro_ator, tempo, intervalo=1):
4040
x1, y1 = self.arredondar_posicao()
4141
x2, y2 = outro_ator.arredondar_posicao()
4242

43-
def esta_no_intervalo(coordenada1, coordenada2):
44-
coordenadas = sorted([coordenada1, coordenada2])
45-
return coordenadas[1] - intervalo <= coordenadas[0]
46-
47-
if esta_no_intervalo(x1, x2) and esta_no_intervalo(y1, y2):
43+
if x1 - intervalo <= x2 <= x1 + intervalo and y1 - intervalo <= y2 <= y1 + intervalo:
4844
self._tempo_de_colisao = tempo
4945
outro_ator._tempo_de_colisao = tempo
5046

@@ -98,10 +94,10 @@ def _calcular_posicao(self, tempo):
9894
self._calcular_posicao_horizontal(delta_t)
9995

10096
def calcular_posicao(self, tempo):
101-
if self._tempo_de_lancamento is None or tempo < self._tempo_de_lancamento:
97+
if self._aguardando_lancamento(tempo):
10298
self.x = self._x_inicial
10399
self.y = self._y_inicial
104-
elif self._tempo_de_colisao is not None and tempo >= self._tempo_de_colisao:
100+
elif self._ja_colidiu(tempo):
105101
self._calcular_posicao(self._tempo_de_colisao)
106102
else:
107103
self._calcular_posicao(tempo)
@@ -111,6 +107,12 @@ def lancar(self, angulo, tempo):
111107
self._tempo_de_lancamento = tempo
112108
self._angulo_de_lancamento = math.radians(angulo)
113109

110+
def _aguardando_lancamento(self, tempo):
111+
return not self.foi_lancado() or tempo < self._tempo_de_lancamento
112+
113+
def _ja_colidiu(self, tempo):
114+
return self.foi_lancado() and self.status(tempo) == DESTRUIDO
115+
114116

115117
class PassaroAmarelo(Passaro):
116118
velocidade_escalar = 30 # m/s

0 commit comments

Comments
 (0)