//////////////////////////////////////////////////////////////////////// // ビットマップを使用して描画するための初期化関数 //////////////////////////////////////////////////////////////////////// public static void CreateContext() { graphics = Graphics.FromImage(GetBitmap()); if (graphics != null) { LoggerForm.WriteSuccess("Context created."); } else { LoggerForm.WriteError("CreateContext() failed."); } }
//////////////////////////////////////////////////////////////////////// // マップを探索 //////////////////////////////////////////////////////////////////////// public static async void AnalyzeMap() { LoggerForm.WriteSuccess("探索開始"); //各タイル座標に属性を付与 SetTileAttributesToAll(); var startTile = GetTileBlockByTileType(TileType.StartTile); var goalTile = GetTileBlockByTileType(TileType.GoalTile); if (startTile == null || goalTile == null) { if (startTile == null) { LoggerForm.WriteError("Start tile not found."); } else if (goalTile == null) { LoggerForm.WriteError("Goal tile not found."); } return; } var startTileCoord = startTile.GetCoordinate(); var goalTileCoord = goalTile.GetCoordinate(); var k = 0; TileBlock bestTile = startTile; while (k < 999) { k++; if (bestTile == null || !IsTileBlockExists(bestTile.GetCoordinate())) { LoggerForm.WriteError("Tile not found."); break; } else if (bestTile.GetTileType() == TileType.GoalTile) { LoggerForm.WriteSuccess("Goal found."); break; } else { bestTile = GetBestTile(bestTile, k); } await Task.Delay(10); } }
//////////////////////////////////////////////////////////////////////// // マップを初期化 & 空タイルを敷き詰める //////////////////////////////////////////////////////////////////////// public static void CreateMap() { tileBlocks = new TileBlock[MAX_COORD_X, MAX_COORD_Y]; tileSizeX = (bitmap.Width) / MAX_COORD_X; tileSizeY = (bitmap.Height) / MAX_COORD_Y; for (int x = 0; x < MAX_COORD_X; x++) { for (int y = 0; y < MAX_COORD_Y; y++) { AddTile(new Vector2(x, y), TileType.Walkable); } } LoggerForm.WriteSuccess("Map created."); }