public Canvas(int sizeX, int sizeY, int positionX, int positionY)
 {
     size     = new IntXYPair(sizeX, sizeY);
     position = new IntXYPair(positionX, positionY);
     bitmap   = new int[sizeX, sizeY];
     bitmap.FillArray(16);
 }
 public Canvas(IntXYPair size, IntXYPair position)
 {
     this.size     = size;
     this.position = position;
     bitmap        = new int[size.x, size.y];
     bitmap.FillArray(16);
 }
Beispiel #3
0
 public void PrintImage(string name, IntXYPair position)
 {
     if (images.ContainsKey(name))
     {
         Renderer.PrintImage(images[name], position);
     }
 }
Beispiel #4
0
 public void DrawToCanvas(string canvasName, string imageName, IntXYPair position)
 {
     if (canvases.ContainsKey(canvasName) && images.ContainsKey(imageName))
     {
         canvases[canvasName].DrawImage(images[imageName], position);
     }
 }
Beispiel #5
0
 public void MoveCanvas(string name, IntXYPair position)
 {
     if (canvases.ContainsKey(name))
     {
         canvases[name].Move(position);
     }
 }
Beispiel #6
0
        public void FreeStringDemo()
        {
            cHandler.Reset();
            IntXYPair textPosition = new IntXYPair(30, 10);

            cHandler.SetFreeString("Hello", new FreeString("Hello World!", textPosition, Color.Black, Color.Green));
            cHandler.SetBorder("DialogBorder", new Border(18, 9, 25, 3));
            bool exit = false;

            while (!exit)
            {
                Console.BackgroundColor = ConsoleColor.Black;
                Console.ForegroundColor = ConsoleColor.White;
                Console.Clear();
                Console.SetCursorPosition(10, 20);
                Console.Write("Q | LeftAlign, W | CenterAlign, E | RightAlign");
                cHandler.PrintAllBorders();
                cHandler.PrintAllFreeStrings();
                var input = Console.ReadKey(true);
                switch (input.Key)
                {
                case ConsoleKey.Escape:
                    exit = true;
                    break;

                case ConsoleKey.UpArrow:
                    cHandler.MoveFreeString("Hello", 0, -1);
                    cHandler.MoveBorder("DialogBorder", 0, -1);
                    break;

                case ConsoleKey.DownArrow:
                    cHandler.MoveFreeString("Hello", 0, 1);
                    cHandler.MoveBorder("DialogBorder", 0, 1);
                    break;

                case ConsoleKey.LeftArrow:
                    cHandler.MoveFreeString("Hello", -1, 0);
                    cHandler.MoveBorder("DialogBorder", -1, 0);
                    break;

                case ConsoleKey.RightArrow:
                    cHandler.MoveFreeString("Hello", 1, 0);
                    cHandler.MoveBorder("DialogBorder", 1, 0);
                    break;

                case ConsoleKey.Q:
                    cHandler.ChangeFreeStringAlignment("Hello", Alignment.Left);
                    break;

                case ConsoleKey.W:
                    cHandler.ChangeFreeStringAlignment("Hello", Alignment.Center);
                    break;

                case ConsoleKey.E:
                    cHandler.ChangeFreeStringAlignment("Hello", Alignment.Right);
                    break;
                }
            }
        }
        public void DrawImage(Image image, IntXYPair position)
        {
            //load the colors, and keep track of the color conversion
            Dictionary <int, int> colorMap = new Dictionary <int, int>
            {
                // black and white
                [15] = 15,
                [16] = 16
            };

            //get the correct number for each color in the image
            int initialIndex = colors.Count();

            for (int i = 0; i < image.Colors.Count; i++)
            {
                if (colors.Any(x => x.ToArgb() == image.Colors[i].ToArgb()))
                {
                    colorMap[i] = colors.FindIndex(x => x.ToArgb() == image.Colors[i].ToArgb());
                }
                else
                {
                    colors.Add(image.Colors[i]);
                    colorMap[i] = colors.Count - 1;
                }
            }

            //calculating where to start and where to end
            int rowStart   = Math.Max(0, 0 - position.y);
            int rowEnd     = Math.Min(bitmap.GetLength(1), position.y + image.Bitmap.Count) - position.y;
            int leftLimit  = Math.Max(0, 0 - position.x);
            int rightLimit = Math.Min(bitmap.GetLength(0), position.x + image.Bitmap[0].Length) - position.x;

            for (int y = rowStart; y < rowEnd; y++)
            {
                for (int x = leftLimit; x < rightLimit; x++)
                {
                    char currentPixel = image.Bitmap[y][x];
                    if (currentPixel != 'T')
                    {
                        if (currentPixel == 'W')
                        {
                            bitmap[x + position.x, y + position.y] = 15;
                        }
                        else if (currentPixel == 'Z')
                        {
                            bitmap[x + position.x, y + position.y] = 16;
                        }
                        else
                        {
                            bitmap[x + position.x, y + position.y] = colorMap[Convert.ToInt32(image.Bitmap[y][x].ToString())];
                        }
                    }
                }
            }
        }
Beispiel #8
0
        public void ImageDemo()
        {
            cHandler.Reset();

            IntXYPair pikachuPosition = new IntXYPair(5, 5);
            bool      exit            = false;

            while (!exit)
            {
                Console.Clear();
                cHandler.PrintImage("Pikachu", pikachuPosition);
                var input = Console.ReadKey(true);
                switch (input.Key)
                {
                case ConsoleKey.Escape:
                    exit = true;
                    break;

                case ConsoleKey.LeftArrow:
                    pikachuPosition.x--;
                    break;

                case ConsoleKey.UpArrow:
                    pikachuPosition.y--;
                    break;

                case ConsoleKey.RightArrow:
                    pikachuPosition.x++;
                    break;

                case ConsoleKey.DownArrow:
                    pikachuPosition.y++;
                    break;
                }
            }
        }
Beispiel #9
0
        public void CanvasDemo()
        {
            cHandler.Reset();
            bool exit = false;

            IntXYPair canvasPosition  = new IntXYPair(5, 5);
            IntXYPair pikachuPosition = new IntXYPair(5, 5);

            cHandler.SetCanvas("BaseCanvas", new IntXYPair(20, 20), canvasPosition);


            while (!exit)
            {
                cHandler.ClearCanvas("BaseCanvas");
                cHandler.MoveCanvas("BaseCanvas", canvasPosition);
                cHandler.DrawToCanvas("BaseCanvas", "Pikachu", pikachuPosition);
                Console.Clear();
                cHandler.PrintCanvas("BaseCanvas");
                var input = Console.ReadKey(true);
                switch (input.Key)
                {
                case ConsoleKey.Escape:
                    exit = true;
                    break;

                case ConsoleKey.LeftArrow:
                    pikachuPosition.x--;
                    break;

                case ConsoleKey.UpArrow:
                    pikachuPosition.y--;
                    break;

                case ConsoleKey.RightArrow:
                    pikachuPosition.x++;
                    break;

                case ConsoleKey.DownArrow:
                    pikachuPosition.y++;
                    break;

                case ConsoleKey.A:
                    canvasPosition.x--;
                    break;

                case ConsoleKey.D:
                    canvasPosition.x++;
                    break;

                case ConsoleKey.S:
                    canvasPosition.y++;
                    break;

                case ConsoleKey.W:
                    canvasPosition.y--;
                    break;

                default:
                    break;
                }
            }
        }
Beispiel #10
0
 public void Move(IntXYPair position)
 {
     this.position = position;
 }
Beispiel #11
0
 public void MoveTo(IntXYPair newPosition)
 {
     position = newPosition;
 }
Beispiel #12
0
 public void MoveTo(int x, int y)
 {
     position = new IntXYPair(x, y);
 }
Beispiel #13
0
 public FreeString(string text, IntXYPair position, Color foregroundColor, Color backgroundColor)
     : this(text, position.GetX(), position.GetY(), foregroundColor, backgroundColor)
 {
 }
Beispiel #14
0
 public FreeString(string text, IntXYPair position)
     : this(text, position.GetX(), position.GetY())
 {
 }
Beispiel #15
0
 public FreeString(string text, int x, int y)
 {
     this.text = text;
     position  = new IntXYPair(x, y);
 }
Beispiel #16
0
 public void SetCanvas(string name, IntXYPair size, IntXYPair position)
 {
     canvases[name] = new Canvas(size, position);
 }