Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 79a2f7d

Browse files
author
renzon
committed
Adicionando documentação para atores
1 parent a76670a commit 79a2f7d

File tree

1 file changed

+70
-3
lines changed

1 file changed

+70
-3
lines changed

atores.py

+70-3
Original file line numberDiff line numberDiff line change
@@ -9,19 +9,46 @@
99

1010

1111
class Ator():
12+
"""
13+
Classe que representa um ator. Ele representa um ponto cartesiano na tela.
14+
"""
1215
_caracter_ativo = 'A'
1316
_caracter_destruido = ' '
1417

1518
def __init__(self, x=0, y=0):
19+
"""
20+
Método de inicialização da classe. Deve inicializar os parâmetros x, y, caracter e status
21+
22+
:param x: Posição horizontal inicial do ator
23+
:param y: Posição vertical inicial do ator
24+
"""
1625
self.y = y
1726
self.x = x
1827
self.caracter = self._caracter_ativo
1928
self.status = ATIVO
2029

2130
def calcular_posicao(self, tempo):
31+
"""
32+
Método que calcula a posição do ator em determinado tempo.
33+
Deve-se imaginar que o tempo começa em 0 e avança de 0,01 segundos
34+
35+
:param tempo: o tempo do jogo
36+
:return: posição x, y do ator
37+
"""
2238
return self.x, self.y
2339

2440
def colidir(self, outro_ator, intervalo=1):
41+
"""
42+
Método que executa lógica de colisão entre dois atores.
43+
Só deve haver colisão se os dois atores tiverem seus status ativos.
44+
Para colisão, é considerado um quadrado, com lado igual ao parâmetro intervalo, em volta do ponto onde se
45+
encontra o ator. Se os atores estiverem dentro desse mesmo quadrado, seus status devem ser alterados para
46+
destruido, seus caracteres para destruido também.
47+
48+
:param outro_ator: Ator a ser considerado na colisão
49+
:param intervalo: Intervalo a ser considerado
50+
:return:
51+
"""
2552
if self.status == DESTRUIDO or outro_ator.status == DESTRUIDO:
2653
return
2754

@@ -45,19 +72,38 @@ class Passaro(Ator):
4572
velocidade_escalar = None
4673

4774
def __init__(self, x=0, y=0):
75+
"""
76+
Método de inicialização de pássaro.
77+
78+
Deve chamar a inicialização de ator. Além disso, deve armazenar a posição inicial e incializar o tempo de
79+
lançamento e angulo de lançamento
80+
81+
:param x:
82+
:param y:
83+
"""
4884
super().__init__(x, y)
4985
self._x_inicial = x
5086
self._y_inicial = y
5187
self._tempo_de_lancamento = None
5288
self._angulo_de_lancamento = None # radianos
5389

5490
def foi_lancado(self):
91+
"""
92+
Método que retorna verdaeira se o pássaro já foi lançado e falso caso contrário
93+
94+
:return: booleano
95+
"""
5596
return self._tempo_de_lancamento is not None
5697

5798
def colidir_com_chao(self):
99+
"""
100+
Método que executa lógica de colisão com o chão. Toda vez que y for menor ou igual a 0,
101+
o status dos Passaro deve ser alterado para destruido, bem como o seu caracter
102+
103+
"""
58104
if self.y <= 0:
59105
self.status = DESTRUIDO
60-
self.caracter=self._caracter_destruido
106+
self.caracter = self._caracter_destruido
61107

62108
def _calcular_posicao_horizontal(self, delta_t):
63109
self.x = self._x_inicial + self.velocidade_escalar * delta_t * math.cos(self._angulo_de_lancamento)
@@ -73,15 +119,36 @@ def _calcular_posicao(self, tempo):
73119
self._calcular_posicao_horizontal(delta_t)
74120

75121
def calcular_posicao(self, tempo):
122+
"""
123+
Método que cálcula a posição do passaro de acordo com o tempo.
124+
125+
Antes do lançamento o pássaro deve retornar o valor de sua posição inicial
126+
127+
Depois do lançamento o pássaro deve calcular de acordo com sua posição inicial, velocidade escalar,
128+
ângulo de lancamento, gravidade (constante GRAVIDADE) e o tempo do jogo.
129+
130+
Após a colisão, ou seja, ter seus status destruido, o pássaro deve apenas retornar a última posição calculada.
131+
132+
:param tempo: tempo de jogo a ser calculada a posição
133+
:return: posição x, y
134+
"""
76135
if self._tempo_de_lancamento is None:
77136
return self._x_inicial, self._y_inicial
78137
if self.status == ATIVO:
79138
self._calcular_posicao(tempo)
80139
return self.x, self.y
81140

82141

83-
def lancar(self, angulo, tempo):
84-
self._tempo_de_lancamento = tempo
142+
def lancar(self, angulo, tempo_de_lancamento):
143+
"""
144+
Lógica que lança o pássaro. Deve armazenar o ângulo e o tempo de lançamento para posteriores cálculo.
145+
O ângulo é passado em graus e deve ser transformado em radianos
146+
147+
:param angulo:
148+
:param tempo_de_lancamento:
149+
:return:
150+
"""
151+
self._tempo_de_lancamento = tempo_de_lancamento
85152
self._angulo_de_lancamento = math.radians(angulo)
86153

87154
def _aguardando_lancamento(self, tempo):

0 commit comments

Comments
 (0)