public void Reinizialize() { pathfound = false; if (pathfinder != null) { pathfinder.PathFound -= pathfinder_PathFound; pathfinder.Abort(); pathfinder.Stop(); } Random rand = new Random((int)DateTime.Now.Ticks); mapnodes = new Node[mapsize, mapsize]; for (int y = 0; y < mapsize; y++) { for (int x = 0; x < mapsize; x++) { mapnodes[y, x] = new Node(x, y, size, rand.Next(0, 100) < percentage ? Walkable.Blocked : Walkable.Walkable); } } mapnodes[yaim, xaim] = new Node(xaim, yaim, size, Walkable.Walkable); mapnodes[5, 2] = new Node(2, 5,size, Walkable.Walkable); AStarMap.InitializeMap(mapnodes); pathfinder = new AStar(); pathfinder.PathFound += new PathFoundEventHandler(pathfinder_PathFound); pathfinder.FindWay(mapnodes[5, 2], mapnodes[yaim, xaim]); }
protected override void Initialize() { _spriteBatch = new SpriteBatch(GraphicsDevice); Services.AddService(typeof(SpriteBatch), _spriteBatch); _map = new Map(7, 7, 90, this); _aStar = new AStar(_map); Components.Add(_map); base.Initialize(); }
protected override void Update(GameTime gameTime) { if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed) Exit(); var keyboardState = Keyboard.GetState(); if(keyboardState.IsKeyDown(Keys.P) && _previousKeyboardState.IsKeyDown(Keys.P) == false) { _aStar.CalculatePath(); } if (keyboardState.IsKeyDown(Keys.R) && _previousKeyboardState.IsKeyDown(Keys.R) == false) { _map.Reset(); _aStar = new AStar(_map); } _previousKeyboardState = keyboardState; base.Update(gameTime); }
private void InitializeKI() { astar = new AStar(); astar.PathFound += new PathFoundEventHandler(astar_PathFound); nodeTex = Content.Load<Texture2D>("Stuff/Node"); font = Content.Load<SpriteFont>("Stuff/Arial"); if (enemyvariables[EnemyVariables.PlayerTracking].Trim() == PlayerTracking.Tracking.ToString()) { tracking = PlayerTracking.Tracking; usesKI = true; } else tracking = PlayerTracking.NotTracking; //timeFromLastSearch = 0; }