Files
pacmanpythondhbw/Game_Package/Inky.py
T
2024-10-29 17:18:30 +01:00

35 lines
1.3 KiB
Python

from Ghost import Ghost
from Vec import Vec
class Inky(Ghost):
def __init__(self, start_position: Vec, start_size: Vec, cell_count, grid_cell_size, player, maze_grid, blinky_pos,
start_delay):
super().__init__(start_position, start_size, cell_count, grid_cell_size, player, maze_grid, start_delay)
self.blinky_pos = blinky_pos
self.int_vec = None
# Aktiviert den Idle-Mode von Inky:
# Wird der Idle-Mode aktiviert springt er direkt wieder in den Hunting-Mode.
# Inky hat somit de facto keinen Idle-Mode.
def idle(self):
self.hunting()
# Aktiviert den Hunting-Mode von Inky:
# Er bewegt sich zu einem Punkt der sich aus PacMan und Blinkys Position berechnet.
def hunting(self):
vec_blinky_pac: Vec = self.player.position.add_ret(self.blinky_pos.mul_ret(-1))
direction = vec_blinky_pac.get_normalized()
vec_blinky_pac = self.player.position.add_ret(vec_blinky_pac)
direction.mul(-20)
while True:
self.int_vec = vec_blinky_pac.mul_ret(1 / self.grid_cell_size).to_int_ret()
if 30 > self.int_vec.x >= 0 and 30 > self.int_vec.y >= 0:
if self.maze_grid[self.int_vec.x][self.int_vec.y] == 0:
break
vec_blinky_pac.add(direction)
self.move_to_point(self.int_vec)