public Agent(Texture2D tex, Point loc, A_Star A) { drawLocation = getDrawLoc(loc); UpdateTileLoc(); velocity = Vector2.Zero; texture = tex; drawOrigin = new Vector2(texture.Width, texture.Height) * 0.5f; a_star = A; distanceCheckValue = speed * 1.75f; }
protected override void Initialize() { // Create the tile objects in the array for (int x = 0; x < tileInfo.GetLength(0); x++) { for (int y = 0; y < tileInfo.GetLength(0); y++) { tileInfo[x, y] = new TileInfo(); } } // Change some tiles to walls tileInfo[4, 0].tileType = TileInfo.TileType.Wall; tileInfo[4, 1].tileType = TileInfo.TileType.Wall; tileInfo[4, 2].tileType = TileInfo.TileType.Wall; tileInfo[4, 3].tileType = TileInfo.TileType.Wall; tileInfo[4, 4].tileType = TileInfo.TileType.Wall; tileInfo[4, 5].tileType = TileInfo.TileType.Wall; tileInfo[3, 5].tileType = TileInfo.TileType.Wall; tileInfo[2, 5].tileType = TileInfo.TileType.Wall; tileInfo[1, 5].tileType = TileInfo.TileType.Wall; tileInfo[1, 4].tileType = TileInfo.TileType.Wall; tileInfo[1, 3].tileType = TileInfo.TileType.Wall; tileInfo[1, 2].tileType = TileInfo.TileType.Wall; tileInfo[7, 6].tileType = TileInfo.TileType.Wall; tileInfo[7, 7].tileType = TileInfo.TileType.Wall; tileInfo[7, 8].tileType = TileInfo.TileType.Wall; tileInfo[7, 9].tileType = TileInfo.TileType.Wall; // Pass the tile information and a weight for the H. // The lower the H weight value shorter the path // the higher it is the less number of checks it take to determine // a path. Less checks might be useful for a very large number of agents. int hWeight = 2; a_star = new A_Star(tileInfo, hWeight); base.Initialize(); }