public void updatePaths(Vector2 playerPos, Manhatten <Tile, Object> aStar) { foreach (Enemy e in container) { e.calculatePathToSimTargetUsingAStart(playerPos, aStar); } }
public void initLevel() { Tmb.initLevel(ref world, ref eContrainer, ref player, ref collectables); recalculatePath(player, new EventArgs()); background = new Background(); debug = new DebugDraw(world, window); input = new InputHandler(window); aStar = new Manhatten <Tile, Object>(Tmb.Map.TileArray); statusbar = new StatusBar(); _test = Tmb.GetObjectPositions(world); }
public void calculatePathToSimTargetUsingAStart(Vector2 position, Manhatten <Tile, Object> aStar) { playerPosition = position; List <Point> backupPath = Path; Vector2f startVector = Vector2fExtensions.ToSf(this.body.Position); Vector2f endVector = Vector2fExtensions.ToSf(position); Point start = new Point((int)startVector.X / 32, (int)startVector.Y / 32); Point end = new Point((int)endVector.X / 32, (int)endVector.Y / 32); LinkedList <Tile> path = aStar.Search(start, end, null); Path = new List <Point>(); if (path != null) { foreach (Tile t in path) { Path.Add(new Point(t.X, t.Y)); } } else { Path = backupPath; } }