예제 #1
0
 ////////////////////////////////////////////////////////////////////////
 // ビットマップを使用して描画するための初期化関数
 ////////////////////////////////////////////////////////////////////////
 public static void CreateContext()
 {
     graphics = Graphics.FromImage(GetBitmap());
     if (graphics != null)
     {
         LoggerForm.WriteSuccess("Context created.");
     }
     else
     {
         LoggerForm.WriteError("CreateContext() failed.");
     }
 }
예제 #2
0
        ////////////////////////////////////////////////////////////////////////
        // マップを探索
        ////////////////////////////////////////////////////////////////////////
        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);
            }
        }
예제 #3
0
        ////////////////////////////////////////////////////////////////////////
        // マップを初期化 & 空タイルを敷き詰める
        ////////////////////////////////////////////////////////////////////////
        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.");
        }