from github
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
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)
|
||||
Reference in New Issue
Block a user