상속: MonoBehaviour
 public static void SortCpuWaves(WaterWave[] windWaves, bool mostlySorted)
 {
     if (!mostlySorted)
     {
         Array.Sort <WaterWave>(windWaves, delegate(WaterWave a, WaterWave b)
         {
             if (a._CPUPriority > b._CPUPriority)
             {
                 return(-1);
             }
             return((a._CPUPriority != b._CPUPriority) ? 1 : 0);
         });
     }
     else
     {
         int num  = windWaves.Length;
         int num2 = 0;
         for (int i = 1; i < num; i++)
         {
             if (windWaves[num2]._CPUPriority < windWaves[i]._CPUPriority)
             {
                 WaterWave waterWave = windWaves[num2];
                 windWaves[num2] = windWaves[i];
                 windWaves[i]    = waterWave;
                 if (i != 1)
                 {
                     i -= 2;
                 }
             }
             num2 = i;
         }
     }
 }
예제 #2
0
        public Bitmap ToWaterWave(Bitmap Im)
        {
            AForge.Imaging.Filters.WaterWave Img = new WaterWave();
            Bitmap bmImage = AForge.Imaging.Image.Clone(new Bitmap(Im), PixelFormat.Format24bppRgb);

            return(Img.Apply(bmImage));
        }
예제 #3
0
        public Bitmap WaterWaveFilter(Bitmap img)
        {
            WaterWave filter = new WaterWave();

            filter.HorizontalWavesCount     = 10;
            filter.HorizontalWavesAmplitude = 5;
            filter.VerticalWavesCount       = 3;
            filter.VerticalWavesAmplitude   = 15;
            return(filter.Apply(img));
        }
예제 #4
0
        private void applyfilter(int a, int b, int c, int d)
        {
            imgcopy = imgcopy1;

            WaterWave filter = new WaterWave();

            filter.HorizontalWavesCount     = a;
            filter.HorizontalWavesAmplitude = b;
            filter.VerticalWavesCount       = c;
            filter.VerticalWavesAmplitude   = d;
            imgcopy = filter.Apply(imgcopy);
            MainForm.getMainForm.pictureBox1ImagePreview.Image = imgcopy;
        }
        //apply 1-3 waves
        private static Bitmap Wave(Bitmap image)
        {
            var h = (int)(r.NextDouble() * 3);
            var v = (int)(r.NextDouble() * 3);

            WaterWave filter = new WaterWave();

            filter.HorizontalWavesCount     = h;
            filter.HorizontalWavesAmplitude = 1;
            filter.VerticalWavesCount       = v;
            filter.VerticalWavesAmplitude   = 1;
            // apply the filter
            return(filter.Apply(image));
        }
예제 #6
0
        public mEffectRipple(int horizontalAmplitude, int verticalAmplitude, int horizontalCount, int verticalCount)
        {
            BitmapType = mFilter.BitmapTypes.None;

            HorizontalCount     = horizontalCount;
            VerticalCount       = verticalCount;
            HorizontalAmplitude = horizontalAmplitude;
            VerticalAmplitude   = verticalAmplitude;

            Effect = new WaterWave();

            Effect.HorizontalWavesAmplitude = HorizontalAmplitude;
            Effect.HorizontalWavesCount     = HorizontalCount;

            Effect.VerticalWavesAmplitude = VerticalAmplitude;
            Effect.VerticalWavesCount     = VerticalCount;

            filter = Effect;
        }
예제 #7
0
        private void FrmMusic_Load(object sender, EventArgs e)
        {
            jPictureBox1.MouseMove += (s, err) =>
            {
                if (ww != null)
                {
                    ww.DropStone(err.Location);
                }
            };
            ww = new WaterWave(new Bitmap(Jade.Test.Properties.Resources._7610ad096b63f6245eb47a088144ebf81b4ca3db), jPictureBox1.Size);
            var tri = new Timer {
                Interval = 15
            };

            tri.Tick += (s, err) =>
            {
                jPictureBox1.Image = ww.GetFrame();
            };
            tri.Start();
        }
예제 #8
0
        public static byte[] ApplyFilter(byte[] imageBytes, ImageProcessingFilters filter, ImageFormat format = null)
        {
            IFilter baseFilter = null;

            switch (filter)
            {
            case ImageProcessingFilters.Default:
                return(imageBytes);

            case ImageProcessingFilters.GrayscaleBT709:
                baseFilter = new GrayscaleBT709();
                break;

            case ImageProcessingFilters.GrayscaleRMY:
                baseFilter = new GrayscaleRMY();
                break;

            case ImageProcessingFilters.GrayscaleY:
                baseFilter = new GrayscaleY();
                break;

            case ImageProcessingFilters.BayerFilter:
                baseFilter = new FiltersSequence();
                ((FiltersSequence)baseFilter).Add(new ExtractChannel(RGB.B));
                ((FiltersSequence)baseFilter).Add(new BayerFilter());
                break;

            /*
             * case ImageProcessingFilters.ImageWarp:
             * baseFilter = new ImageWarp(
             * break;
             * */
            case ImageProcessingFilters.Channel_Red:
                baseFilter = new ExtractChannel(RGB.R);
                break;

            case ImageProcessingFilters.Channel_Green:
                baseFilter = new ExtractChannel(RGB.G);
                break;

            case ImageProcessingFilters.Channel_Blue:
                baseFilter = new ExtractChannel(RGB.B);
                break;

            case ImageProcessingFilters.WaterWave:
                baseFilter = new WaterWave();
                ((WaterWave)baseFilter).HorizontalWavesCount     = 10;
                ((WaterWave)baseFilter).HorizontalWavesAmplitude = 5;
                ((WaterWave)baseFilter).VerticalWavesCount       = 3;
                ((WaterWave)baseFilter).VerticalWavesAmplitude   = 15;
                break;

            case ImageProcessingFilters.Sepia:
                baseFilter = new Sepia();
                break;

            case ImageProcessingFilters.BrightnessCorrection:
                baseFilter = new BrightnessCorrection(-50);
                break;

            case ImageProcessingFilters.ContrastCorrection:
                baseFilter = new ContrastCorrection(15);
                break;

            case ImageProcessingFilters.SaturationCorrection1:
                baseFilter = new SaturationCorrection(-0.5f);
                break;

            case ImageProcessingFilters.SaturationCorrection2:
                baseFilter = new SaturationCorrection(-.25f);
                break;

            case ImageProcessingFilters.SaturationCorrection3:
                baseFilter = new SaturationCorrection(+0.5f);
                break;

            case ImageProcessingFilters.Invert:
                baseFilter = new Invert();
                break;

            case ImageProcessingFilters.Blur:
                baseFilter = new Blur();
                break;

            case ImageProcessingFilters.RotateChannels:
                baseFilter = new RotateChannels();
                break;

            case ImageProcessingFilters.RotateChannels2:
                baseFilter = new FiltersSequence();
                ((FiltersSequence)baseFilter).Add(new RotateChannels());
                ((FiltersSequence)baseFilter).Add(new RotateChannels());
                break;

            case ImageProcessingFilters.AdditiveNoise:
                IRandomNumberGenerator generator = new UniformGenerator(new Range(-50, 50));
                baseFilter = new AdditiveNoise(generator);
                break;

            case ImageProcessingFilters.GammaCorrection:
                baseFilter = new GammaCorrection(0.5);
                break;

            case ImageProcessingFilters.HistogramEqualization:
                baseFilter = new HistogramEqualization();
                break;

            case ImageProcessingFilters.OrderedDithering:
                byte[,] matrix = new byte[4, 4]
                {
                    { 95, 233, 127, 255 },
                    { 159, 31, 191, 63 },
                    { 111, 239, 79, 207 },
                    { 175, 47, 143, 15 }
                };
                baseFilter = new FiltersSequence();
                ((FiltersSequence)baseFilter).Add(new GrayscaleBT709());
                ((FiltersSequence)baseFilter).Add(new OrderedDithering(matrix));
                break;

            case ImageProcessingFilters.Pixallete:
                baseFilter = new Pixellate();
                break;

            case ImageProcessingFilters.SimplePosterization:
                baseFilter = new SimplePosterization();
                break;

            case ImageProcessingFilters.Texturer_Textile:
                baseFilter = new Texturer(new AForge.Imaging.Textures.TextileTexture(), 0.3, 0.7);
                break;

            case ImageProcessingFilters.Texturer_Cloud:
                baseFilter = new Texturer(new AForge.Imaging.Textures.CloudsTexture(), 0.3, 0.7);
                break;

            case ImageProcessingFilters.Texturer_Marble:
                baseFilter = new Texturer(new AForge.Imaging.Textures.MarbleTexture(), 0.3, 0.7);
                break;

            case ImageProcessingFilters.Texturer_Wood:
                baseFilter = new Texturer(new AForge.Imaging.Textures.WoodTexture(), 0.3, 0.7);
                break;

            case ImageProcessingFilters.Texturer_Labyrinth:
                baseFilter = new Texturer(new AForge.Imaging.Textures.LabyrinthTexture(), 0.3, 0.7);
                break;

            case ImageProcessingFilters.SobelEdgeDetector:
                baseFilter = new FiltersSequence();
                ((FiltersSequence)baseFilter).Add(new ExtractChannel(RGB.R));
                ((FiltersSequence)baseFilter).Add(new SobelEdgeDetector());
                break;

            case ImageProcessingFilters.SobelEdgeDetectorInvert:
                baseFilter = new FiltersSequence();
                ((FiltersSequence)baseFilter).Add(new ExtractChannel(RGB.R));
                ((FiltersSequence)baseFilter).Add(new SobelEdgeDetector());
                ((FiltersSequence)baseFilter).Add(new Invert());
                break;

            case ImageProcessingFilters.SobelEdgeDetectorSepia:
                baseFilter = new FiltersSequence();
                ((FiltersSequence)baseFilter).Add(new ExtractChannel(RGB.R));
                ((FiltersSequence)baseFilter).Add(new SobelEdgeDetector());
                ((FiltersSequence)baseFilter).Add(new GrayscaleToRGB());
                ((FiltersSequence)baseFilter).Add(new Sepia());
                break;

            case ImageProcessingFilters.SobelEdgeDetectorSepiaCanvas:
                baseFilter = new FiltersSequence();
                ((FiltersSequence)baseFilter).Add(new ExtractChannel(RGB.R));
                ((FiltersSequence)baseFilter).Add(new SobelEdgeDetector());
                ((FiltersSequence)baseFilter).Add(new GrayscaleToRGB());
                ((FiltersSequence)baseFilter).Add(new Sepia());
                ((FiltersSequence)baseFilter).Add(new SimplePosterization());
                ((FiltersSequence)baseFilter).Add(new Texturer(new AForge.Imaging.Textures.TextileTexture(), 0.3, 0.7));
                break;

            case ImageProcessingFilters.Drawing:
                baseFilter = new FiltersSequence();
                ((FiltersSequence)baseFilter).Add(new GrayscaleBT709());
                ((FiltersSequence)baseFilter).Add(new SobelEdgeDetector());
                ((FiltersSequence)baseFilter).Add(new Invert());
                ((FiltersSequence)baseFilter).Add(new SimplePosterization());
                break;

            case ImageProcessingFilters.DrawingSepia:
                baseFilter = new FiltersSequence();
                ((FiltersSequence)baseFilter).Add(new GrayscaleBT709());
                ((FiltersSequence)baseFilter).Add(new SobelEdgeDetector());
                ((FiltersSequence)baseFilter).Add(new Invert());
                ((FiltersSequence)baseFilter).Add(new SimplePosterization());
                ((FiltersSequence)baseFilter).Add(new GrayscaleToRGB());
                ((FiltersSequence)baseFilter).Add(new Sepia());
                break;

            case ImageProcessingFilters.OilCanvas:
                baseFilter = new FiltersSequence();
                ((FiltersSequence)baseFilter).Add(new SimplePosterization());
                ((FiltersSequence)baseFilter).Add(new Texturer(new AForge.Imaging.Textures.TextileTexture(), 0.3, 0.7));
                break;

            case ImageProcessingFilters.OilCanvasGray:
                baseFilter = new FiltersSequence();
                ((FiltersSequence)baseFilter).Add(new SimplePosterization());
                ((FiltersSequence)baseFilter).Add(new Texturer(new AForge.Imaging.Textures.TextileTexture(), 0.3, 0.7));
                ((FiltersSequence)baseFilter).Add(new GrayscaleBT709());
                break;

            case ImageProcessingFilters.OilCanvasSepia:
                baseFilter = new FiltersSequence();
                ((FiltersSequence)baseFilter).Add(new SimplePosterization());
                ((FiltersSequence)baseFilter).Add(new Texturer(new AForge.Imaging.Textures.TextileTexture(), 0.3, 0.7));
                ((FiltersSequence)baseFilter).Add(new Sepia());
                break;
            }

            if (baseFilter == null)
            {
                return(null);
            }

            return(ApplyFilter(imageBytes, baseFilter, format));
        }
예제 #9
0
 private void btn_filter3_Click(object sender, EventArgs e)
 {
     AForge.Imaging.Filters.WaterWave filter = new WaterWave();
     pictureBox1.Image = filter.Apply((Bitmap)pictureBox1.Image);
 }
예제 #10
0
        public World(int InitFactionNumber, Game game, bool ambientOn, string mapName)
        {
            this.game     = game;
            commonCamera  = new Camera(Vector2.Zero, 1.5f);
            player1Camera = new Camera(Vector2.Zero, 1.5f);
            player2Camera = new Camera(Vector2.Zero, 1.5f);
            cameras.Add(commonCamera);
            cameras.Add(player1Camera);
            cameras.Add(player2Camera);

            currentCamera = commonCamera;

            //by 刘欣 李翔
            collector = new InfoCollector(ships, resources);

            if (InitFactionNumber == 1)
            {
                InitShip(2, Color.Blue, "Player", FactionControllerType.Player);
            }

            if (mapName == null)
            {
                mapName = GameOperators.Random.Next(1, 7).ToString();
            }

            currentMap = mapName;
            LoadMap(currentMap);

            //添加资源点
            //resources.Add(new ResourceArea(1, 196, new Vector2(-384, -384), null, this));
            //islands.Add(new Island(this, "island1", 0.3f, new Vector2(-384, -384), 32f));
            //resources.Add(new ResourceArea(2, 196, new Vector2(-384, 384), null, this));
            //islands.Add(new Island(this, "island2", 0.3f, new Vector2(-384, 384), 32f));
            //resources.Add(new ResourceArea(3, 196, new Vector2(0, 0), null, this));
            //islands.Add(new Island(this, "island0", 0.3f, new Vector2(0, 0), 32f));
            //resources.Add(new ResourceArea(4, 196, new Vector2(384, -384), null, this));
            //islands.Add(new Island(this, "island3", 0.3f, new Vector2(384, -384), 32f));
            //resources.Add(new ResourceArea(5, 196, new Vector2(384, 384), null, this));
            //islands.Add(new Island(this, "island4", 0.3f, new Vector2(384, 384), 32f));

            sea       = new Sea();
            waterWave = new WaterWave();
            for (int i = 0; i < 20; i++)//添加云
            {
                // upperAmbients.Add(AmbientObject.CreateCloud(this,new Vector2(GameOperators.Random.Next(-768,768),GameOperators.Random.Next(-1024,1024)),new Vector2 (10f,2f)));
                upperAmbients.Add(AmbientObject.CreateCloud(this, new Vector2(GameOperators.Random.Next((int)(-MapSize.X / 2 * 1.4f), (int)(MapSize.X / 2 * 1.4f)), GameOperators.Random.Next((int)(-MapSize.Y / 2 * 1.4f), (int)(MapSize.Y / 2 * 1.4f))), new Vector2(10f, 2f)));
            }

            lowerAmbients.Add(new AmbientObject(this, new Vector2(0, 0), "OceanBackground", 2, Color.White, 0));
            lowerAmbients.Add(new AmbientObject(this, new Vector2(0, 0), "OceanBackgroundWord", 0.75f, Color.White, 0));
            for (int i = 0; i < 20; i++)//添加鱼
            {
                // upperAmbients.Add(AmbientObject.CreateCloud(this,new Vector2(GameOperators.Random.Next(-768,768),GameOperators.Random.Next(-1024,1024)),new Vector2 (10f,2f)));
                lowerAmbients.Add(new Fish(this));
            }

            map = new SmallMap(ships, resources, currentCamera);

            corners[0]     = new Vector2(-mapSize.X / 2, -mapSize.Y / 2);
            corners[1]     = new Vector2(mapSize.X / 2, -mapSize.Y / 2);
            corners[2]     = new Vector2(mapSize.X / 2, mapSize.Y / 2);
            corners[3]     = new Vector2(-mapSize.X / 2, mapSize.Y / 2);
            this.ambientOn = ambientOn;
        }