public void Update(GameTime time) { KeyboardState keyboard_state = Keyboard.GetState(); if (keyboard_state.IsKeyDown(Key.A)) { camera.Move(new Vector2(-2, 0)); } if (keyboard_state.IsKeyDown(Key.W)) { camera.Move(new Vector2(0, -2)); } if (keyboard_state.IsKeyDown(Key.D)) { camera.Move(new Vector2(2, 0)); } if (keyboard_state.IsKeyDown(Key.S)) { camera.Move(new Vector2(0, 2)); } //Pathfinding debug test if (keyboard_state.IsKeyUp(Key.Enter) && old_keyboard.IsKeyDown(Key.Enter)) { DateTime start = DateTime.Now; Node n = AStar.FindPath(map, new Point(0, 0), new Point(2, 0)); DateTime end = DateTime.Now; Console.WriteLine("Time to path: {0}", (end - start).TotalMilliseconds); if (n == null) { Console.WriteLine("Goal is unreachable."); } else { while (n.Parent != null) { Console.Write("{0}->", n.location.ToString()); n = n.Parent; } Console.WriteLine("{0}", n.location.ToString()); } } if (keyboard_state.IsKeyUp(Key.ShiftRight) && old_keyboard.IsKeyDown(Key.ShiftRight)) { Mob m = new Mob(path, spawn) { Speed = 1 }; mobs.Add(m); } old_keyboard = keyboard_state; map.Update(time); for (int i = mobs.Count - 1; i >= 0; i--) { Mob m = mobs[i]; if (m.Dead) { mobs.Remove(m); } else { m.Update(time); } } }