-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtempCodeRunnerFile.py
48 lines (39 loc) · 2.02 KB
/
tempCodeRunnerFile.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
class Direcao(Enum):
ESQUERDA = 0
DIREITA = 1
BAIXO = 2
CIMA = 3
class Fantasma:
def __init__(self, mapa: Mapa, tela: pygame.Surface) -> None:
self.img_fantasma= ler_imagem('enemies/enemy-fantasma.png', (ConfigJogo.TAM_TILE, ConfigJogo.TAM_TILE))
self.vida = ConfigJogo.VIDA_INIMIGO
self._mapa = mapa
self._x = ConfigJogo.QUARTEL_X
self._y = ConfigJogo.QUARTEL_Y
self._idx_movimento = random.randint(Direcao.ESQUERDA.value, Direcao.CIMA.value)
self.tela = tela
self._time_last_move = 0
def desenha(self):
#superficie_circulo = pygame.Surface((ConfigJogo.LARGURA_TELA, ConfigJogo.ALTURA_TELA), pygame.SRCALPHA)
#pygame.draw.circle(superficie_circulo, ConfigJogo.COR_AURA, (self._x + ConfigJogo.TAM_TILE/2, self._y + ConfigJogo.TAM_TILE/2), ConfigJogo.RAIO_AURA)
#self.tela.blit(superficie_circulo, ConfigJogo.ORIGEM)
pygame.draw.circle(self.tela, ConfigJogo.COR_AURA, (self._x+ ConfigJogo.TAM_TILE/2, self._y + ConfigJogo.TAM_TILE/2), ConfigJogo.RAIO_AURA, ConfigJogo.ESPESSURA_AURA)
self.tela.blit(self.img_fantasma, (self._x, self._y))
def tratamento_eventos(self):
if time.time() - self._time_last_move > ConfigJogo.CD_FANTASMA:
new_x = self._x
new_y = self._y
if self._idx_movimento == Direcao.ESQUERDA.value:
new_x -= ConfigJogo.VELOCIDADE_FANTASMA
elif self._idx_movimento == Direcao.DIREITA.value:
new_x += ConfigJogo.VELOCIDADE_FANTASMA
elif self._idx_movimento == Direcao.BAIXO.value:
new_y += ConfigJogo.VELOCIDADE_FANTASMA
elif self._idx_movimento == Direcao.CIMA.value:
new_y -= ConfigJogo.VELOCIDADE_FANTASMA
if not self._mapa.is_fixed_wall(new_x, new_y):
self._x = new_x
self._y = new_y
self._time_last_move = time.time()
else:
self._idx_movimento = random.randint(0, 3)