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)