Beispiel #1
0
    public override void Init(OctoGameType.StoreType type, OctoGameType.StoreLv lv)
    {
        _storeType  = type;
        _storeLv    = lv;
        attackScore = OctoGameAlgorthm.GetAttackScore(lv);


        areaSpread = GetComponent <AreaSpread>();
        areaSpread.Init(this);
        areaSpread.ActiveAreaSpread();
    }
Beispiel #2
0
        static void Main(string[] args)
        {
            double         sum              = 0;
            double         sum2             = 0;
            double         sum3             = 0;
            long           inUse            = 0;
            int            iterations       = 1;
            int            updateIterations = 1;
            int            startX           = -627;
            int            startY           = -1;
            int            endX             = -627;
            int            endY             = 1;
            TileMapManager tileMapManager;

            for (int b = 0; b < iterations; b++)
            {
                Stopwatch watch = new Stopwatch();
                watch.Start();
                GeneratorSettings settings = new GeneratorSettings(1, 50, 1.5f, 1000000, 10000000, true, 1000f);
                AreaSpread[]      spreads  = new AreaSpread[7]
                {
                    new AreaSpread(1, 1, 0.30f, 20, 250, true, true, 5, SpreadOption.Circle, LayerType.Height),
                    new AreaSpread(2, 1, 0.125f, 20, 200, true, true, 5, SpreadOption.Circle, LayerType.Height),
                    new AreaSpread(2, 0, 0.01f, 1, 2, false, false, 0, SpreadOption.None, LayerType.PointsOfInterest),
                    new AreaSpread(3, 0, 0.005f, 1, 2, false, false, 0, SpreadOption.None, LayerType.PointsOfInterest),
                    new AreaSpread(4, 0, 0.005f, 1, 2, false, false, 0, SpreadOption.None, LayerType.PointsOfInterest),
                    new AreaSpread(5, 0, 0.005f, 1, 2, false, false, 0, SpreadOption.None, LayerType.PointsOfInterest),
                    new AreaSpread(6, 0, 0.005f, 1, 2, false, false, 0, SpreadOption.None, LayerType.PointsOfInterest)
                };

                tileMapManager = new TileMapManager(settings, spreads);
                tileMapManager.Changelevel(settings, startX, startY, false);
                StreamedTileMap map = tileMapManager.CurrentLevel;

                watch.Stop();
                double seconds = watch.Elapsed.TotalSeconds;

                tileMapManager.Update(startY, startX);
                Tile[] screenMap = map.GetTileMapInScreen(800, 600);
                SaveToFile(screenMap, null, "screenMap" + b.ToString(), 800 / 50);


                watch.Restart();
                int counter = 0;
                for (int k = 0; k < 9; k++)
                {
                    counter += SaveToFile(map.Maps[k].MapSurface, map.Maps[k].ObjectPlacement, "map" + b.ToString() + "_" + k.ToString(), map.TileColumnCount);
                }

                watch.Stop();

                watch.Restart();
                tileMapManager.Update(endY, endX);
                watch.Stop();
                double update1 = watch.Elapsed.TotalSeconds;
                Thread.Sleep(5000); //wait for generation thread (only for debugging)


                watch.Restart();
                tileMapManager.Update(endY, endX);
                watch.Stop();
                double update2 = watch.Elapsed.TotalSeconds;

                for (int k = 0; k < 9; k++)
                {
                    counter += SaveToFile(map.Maps[k].MapSurface, map.Maps[k].ObjectPlacement, "map2_" + b.ToString() + "_" + k.ToString(), map.TileColumnCount);
                }

                Log("Tiles generated: " + counter.ToString());
                Log("Generation time: " + seconds.ToString() + " seconds");
                Log("Write time: " + watch.Elapsed.TotalSeconds.ToString() + " seconds");
                Log("Update1 time: " + update1.ToString() + " seconds");
                Log("Update2 time: " + update2.ToString() + " seconds");

                screenMap = map.GetTileMapInScreen(800, 600);
                SaveToFile(screenMap, null, "screenMap2_" + b.ToString(), 800 / 50);

                for (int i = 0; i < updateIterations; i++)
                {
                    watch.Restart();
                    tileMapManager.Update(endY - i, endX - i);
                    Tile[] data = map.GetTileMapInScreen(800, 600);
                    watch.Stop();
                    update2 = watch.Elapsed.TotalMilliseconds;
                    sum    += update2;
                    Log("Update time: " + update2.ToString() + " ms");
                    inUse += Process.GetCurrentProcess().PrivateMemorySize64;
                    Log("MemoryInUse: " + Process.GetCurrentProcess().PrivateMemorySize64.ToString() + " byte");
                }

                watch.Restart();
                tileMapManager.Update(startY, startX);
                watch.Stop();
                update2 = watch.Elapsed.TotalMilliseconds;
                sum2   += update2;
                Log("Update time: " + update2.ToString() + " ms");
                Thread.Sleep(2000);
                watch.Restart();
                tileMapManager.Update(startY, startX);
                watch.Stop();
                update2 = watch.Elapsed.TotalMilliseconds;
                sum3   += update2;
                Log("Update time: " + update2.ToString() + " ms");
                Log("Done");
            }
            Console.Clear();
            Log("Iterations: " + iterations.ToString());
            Log("UpdateIterations: " + (iterations * updateIterations).ToString());
            Log("Avg Update Time: " + (sum / (iterations * updateIterations)).ToString() + " ms");
            Log("Avg Update Time (Pre GridChange):" + (sum2 / iterations).ToString() + " ms");
            Log("Avg Update Time (GridChange):" + (sum3 / iterations).ToString() + " ms");
            Log("Avg MemoryInUse: " + (inUse / (iterations * updateIterations)).ToString() + " byte");
            Log("Final MemoryInUse: " + Process.GetCurrentProcess().PrivateMemorySize64.ToString() + " byte");

            MatchFiles();
            Console.ReadKey();
        }