示例#1
0
        // 4 in 1 function with VisibleElementTypesEnum class.
        private void PaintOnGrid(int rowPosition, int columnPosition, VisibleElementTypesEnum VisibleType)
        {
            var image = GetImage(rowPosition, columnPosition);

            switch (VisibleType)
            {
            case VisibleElementTypesEnum.SnakeHead:
                image.Icon       = FontAwesome.WPF.FontAwesomeIcon.Circle;
                image.Foreground = Brushes.Black;
                image.Opacity    = 1;
                break;

            case VisibleElementTypesEnum.SnakeNeck:
                image.Icon       = FontAwesome.WPF.FontAwesomeIcon.Circle;
                image.Foreground = Brushes.Gray;
                image.Opacity    = 1;
                break;

            case VisibleElementTypesEnum.Food:
                image.Icon       = FontAwesome.WPF.FontAwesomeIcon.Apple;
                image.Foreground = Brushes.Red;
                image.Opacity    = 1;
                break;

            case VisibleElementTypesEnum.EmptyArenaPosition:
                image.Icon = FontAwesome.WPF.FontAwesomeIcon.SquareOutline;
                //image.Foreground = Brushes.Black;
                image.Opacity = 0;
                break;

            default:
                break;
            }
        }
        /// <summary>
        /// Rajzol egy elemet a Canvas-ra.
        /// </summary>
        /// <param name="rowPosition">sorpizíció</param>
        /// <param name="columnPosition">oszloppozíció</param>
        /// <returns>A kirajzolt elem, amit aztán majd törölni kell</returns>
        ///
        private UIElement PaintOnCanvas(int rowPosition, int columnPosition, VisibleElementTypesEnum visibleType)
        {
            var paint = new Ellipse();

            //a megjelenítés után az aktiális mérete ezzel kérdezhető le egy-egy
            //megjelenített elemnek
            paint.Height = View.ArenaCanvas.ActualHeight / RowCount;
            paint.Width  = View.ArenaCanvas.ActualWidth / ColumnCount;

            switch (visibleType)
            {
            case VisibleElementTypesEnum.SnakeHead:
                paint.Fill = Brushes.Black;
                break;

            case VisibleElementTypesEnum.SnakeNeck:
                paint.Fill = Brushes.Gray;
                break;

            case VisibleElementTypesEnum.Food:
                //A kitöltő szín legyen ugyanolyan piros, mint az almáé a Grid-en
                paint.Fill = Brushes.Red;
                break;

            //ilyen többé nem lesz, nem felülsatírozzuk a színt, hanem a childrenből töröljük
            //case VisibleElementTypesEnum.EmptyArenaPosition:
            //    paint.Fill = Brushes.Aquamarine;
            //    break;
            default:
                break;
            }

            //Meg kell határoztatni Canvas koordinátákban a kirajzolandó pozíciót
            Canvas.SetTop(paint, rowPosition * paint.Height);
            Canvas.SetLeft(paint, columnPosition * paint.Width);

            //Végül hozzáadjuk a Canvas-hoz, ezzel megjelenítjük
            View.ArenaCanvas.Children.Add(paint);
            return(paint);
        }
        private void PaintOnGrid(int rowPosition, int columnPosition, VisibleElementTypesEnum visibleType)
        {
            var image = GetImage(rowPosition, columnPosition);

            //és már el tudom érni az ikon tulajdonságot
            switch (visibleType)
            {
            case VisibleElementTypesEnum.SnakeHead:
                image.Icon       = FontAwesome.WPF.FontAwesomeIcon.Circle;
                image.Foreground = Brushes.Black;
                image.Opacity    = 1;  //visszaállítjuk láthatóra, hogy ahol a kígyó már járt ott is látszódjon
                break;

            case VisibleElementTypesEnum.SnakeNeck:
                image.Icon       = FontAwesome.WPF.FontAwesomeIcon.Circle;
                image.Foreground = Brushes.Gray;
                image.Opacity    = 1;  //visszaállítjuk láthatóra, hogy ahol a kígyó már járt ott is látszódjon
                break;

            case VisibleElementTypesEnum.Food:
                image.Icon       = FontAwesome.WPF.FontAwesomeIcon.Apple;
                image.Foreground = Brushes.Red;
                image.Opacity    = 1;  //visszaállítjuk láthatóra, hogy ahol a kígyó már járt ott is látszódjon
                break;

            case VisibleElementTypesEnum.EmptyArenaPosition:
                image.Icon = FontAwesome.WPF.FontAwesomeIcon.SquareOutline;
                //image.Icon = FontAwesome.WPF.FontAwesomeIcon.None; //ez nem akart működni, szemetet hagy magamögött
                //image.Foreground = Brushes.White; //a mögötte lévő (megevett ételek száma) számon látszik a fehér, ez sem jó
                image.Opacity = 0;     //átállítjuk átlátszóra, így nem látszik.

                break;

            default:
                break;
            }
        }
示例#4
0
        /// <summary>
        /// It paints an element on the canvas.
        /// </summary>
        /// <param name="rowPosition"></param>
        /// <param name="columnPosition"></param>
        /// <returns>The painted item what has to be deleted.</returns>
        private UIElement PaintOnCanvas(int rowPosition, int columnPosition, VisibleElementTypesEnum VisibleType)
        {
            var paint = new Ellipse();

            paint.Height = View.ArenaCanvas.ActualHeight / RowCount;
            paint.Width  = View.ArenaCanvas.ActualWidth / ColumnCount;

            switch (VisibleType)
            {
            case VisibleElementTypesEnum.SnakeHead:
                paint.Fill = Brushes.Black;
                break;

            case VisibleElementTypesEnum.SnakeNeck:
                paint.Fill = Brushes.Gray;
                break;

            case VisibleElementTypesEnum.Food:
                paint.Fill = Brushes.Red;
                break;

            // We don't need this snipet anymore. We delete the canvas.
            //case VisibleElementTypesEnum.EmptyArenaPosition:
            //    paint.Fill = Brushes.Aquamarine;
            //    break;
            default:
                break;
            }

            Canvas.SetTop(paint, rowPosition * paint.Height);
            Canvas.SetLeft(paint, columnPosition * paint.Width);

            View.ArenaCanvas.Children.Add(paint);

            return(paint);
        }