예제 #1
0
        private void loadImageToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                Bitmap bitmap = (Bitmap)Image.FromFile(openFileDialog1.FileName);

                rogueScreen1.ScreenWidth  = bitmap.Width;
                rogueScreen1.ScreenHeight = bitmap.Height;

                for (int y = 0; y < bitmap.Height; y++)
                {
                    for (int x = 0; x < bitmap.Width; x++)
                    {
                        Color color = bitmap.GetPixel(x, y);

                        float yval = 0.299f * color.R + 0.587f * color.G + 0.114f * color.B;

                        RogueCore.Char character = new RogueCore.Char();

                        character.frontColor = color;
                        character.character  = getGrayShade((int)yval);

                        rogueScreen1.SetChar(x, y, character);
                    }
                }
            }
        }
예제 #2
0
        private int TraceCb(Point point, object ctx)
        {
            RogueCore.Char dot = new RogueCore.Char();

            dot.character = '.';

            rogueScreen1.SetChar(point.X, point.Y, dot);

            return(0);
        }
예제 #3
0
        private int TracePathCb(Point point, object ctx)
        {
            RogueCore.Char character = new RogueCore.Char();

            character.character  = 'x';
            character.frontColor = Color.Yellow;

            rogueScreen1.SetChar(point.X, point.Y + 2, character);

            return(0);
        }
예제 #4
0
        private void FillRandomChars()
        {
            for (int y = 0; y < rogueScreen1.ScreenHeight; y++)
            {
                for (int x = 0; x < rogueScreen1.ScreenWidth; x++)
                {
                    RogueCore.Char character = new RogueCore.Char();

                    character.backColor  = Color.Black;
                    character.frontColor = RandomColor();
                    character.character  = RandomCharacter();

                    rogueScreen1.SetChar(x, y, character);
                }
            }

            rogueScreen1.Invalidate();
        }
예제 #5
0
        public void PutChar(char charValue, bool backward = false)
        {
            Point pos = GetCursor();

            if (backward)
            {
                pos.X--;
            }

            RogueCore.Char character = GetChar(pos.X, pos.Y);
            character.character = charValue;
            SetChar(pos.X, pos.Y, character);

            if (!backward)
            {
                pos.X++;
            }

            SetCursor(pos);
        }
예제 #6
0
        private int BlueExplosionCb(Point point, object ctx)
        {
            Color[] explosionColors = new Color[]
            {
                Color.Blue,
                Color.RoyalBlue,
                Color.MediumBlue,
                Color.Cyan
            };

            RogueCore.Char fire = new RogueCore.Char();

            fire.character = '#';

            int colorIndex = rnd.Next(0, explosionColors.Length);

            fire.frontColor = explosionColors[colorIndex];

            rogueScreen1.SetChar(point.X, point.Y, fire);

            return(0);
        }
예제 #7
0
        private int GreenExplosionCb(Point point, object ctx)
        {
            Color[] explosionColors = new Color[]
            {
                Color.Green,
                Color.Lime,
                Color.ForestGreen,
                Color.Chartreuse
            };

            RogueCore.Char fire = new RogueCore.Char();

            fire.character = '#';

            int colorIndex = rnd.Next(0, explosionColors.Length);

            fire.frontColor = explosionColors[colorIndex];

            rogueScreen1.SetChar(point.X, point.Y, fire);

            return(0);
        }
예제 #8
0
        private int RedExplosionCb(Point point, object ctx)
        {
            Color[] explosionColors = new Color[]
            {
                Color.Red,
                Color.OrangeRed,
                Color.Firebrick,
                Color.Tomato
            };

            RogueCore.Char fire = new RogueCore.Char();

            fire.character = '#';

            int colorIndex = rnd.Next(0, explosionColors.Length);

            fire.frontColor = explosionColors[colorIndex];

            rogueScreen1.SetChar(point.X, point.Y, fire);

            return(0);
        }