コード例 #1
0
        public DrawMaze(Maze.RecursiveMazeGenerator m, int thickness, int imageSize, int mazeSize)
        {
            this.m         = m;
            this.thickness = thickness;
            this.imageSize = imageSize;
            this.mazeSize  = mazeSize;

            ((MainWindow)System.Windows.Application.Current.MainWindow).Background = System.Windows.Media.Brushes.Black;
            double mazeCelllSize = (imageSize + 2 * thickness) * mazeSize;
            double marg          = (((MainWindow)System.Windows.Application.Current.MainWindow).Width - (mazeCelllSize)) / 2;

            ((MainWindow)System.Windows.Application.Current.MainWindow).canvas.Margin = new Thickness(marg, 2 * marg, marg, marg);// відступ ігрового поля
            Create(((MainWindow)System.Windows.Application.Current.MainWindow).canvas, m);
        }
コード例 #2
0
ファイル: GameInitialization.cs プロジェクト: solyaH/Pacman
 public GameInitialization(int mazeSize)
 {
     try
     {
         this.mazeSize = mazeSize;
         SizeAccuracy();
         Maze.RecursiveMazeGenerator m = new Maze.RecursiveMazeGenerator(mazeSize, mazeSize);
         DrawMaze  dm  = new DrawMaze(m, thickness, imageSize, mazeSize);
         GameScore gs  = new GameScore(mazeSize, ghostTimer, pacmanTimer);
         WinOrLose wol = new WinOrLose();
         gs.WinGame += wol.Message;
         PacmanMovement     pm = new PacmanMovement(m.MyMaze, thickness, imageSize, gs, pacmanTimer);
         ScoreVisualization sv = new ScoreVisualization(pm.gs);
         if (mazeSize >= 5)
         {
             GhostMovement yellow = new GhostMovement(m.MyMaze, pm.pacman, thickness, imageSize, @".\Images\yellow.png", rand, ghostTimer, pm.moveTimer);
             yellow.LoseGame += wol.Message;
         }
         if (mazeSize >= 6)
         {
             GhostMovement red = new GhostMovement(m.MyMaze, pm.pacman, thickness, imageSize, @".\Images\red.png", rand, ghostTimer, pm.moveTimer);
             red.LoseGame += wol.Message;
         }
         if (mazeSize >= 8)
         {
             GhostMovement pink = new GhostMovement(m.MyMaze, pm.pacman, thickness, imageSize, @".\Images\pink.png", rand, ghostTimer, pm.moveTimer);
             pink.LoseGame += wol.Message;
         }
         if (mazeSize == 10)
         {
             GhostMovement blue = new GhostMovement(m.MyMaze, pm.pacman, thickness, imageSize, @".\Images\blue.png", rand, ghostTimer, pm.moveTimer);
             blue.LoseGame += wol.Message;
         }
     }
     catch (Exception e)
     {
         MessageBox.Show(string.Format("{0} Exception caught.", e.Message), "Exception", MessageBoxButton.OK, MessageBoxImage.Error);
         ((MainWindow)System.Windows.Application.Current.MainWindow).Close();
     }
 }
コード例 #3
0
        public void Create(Canvas canvas, Maze.RecursiveMazeGenerator m) //візуалізувати лабіринт
        {
            int  size = imageSize + 2 * thickness;                       //розмір клітинки
            Line wall;

            for (int x = 0; x < m.MyMaze.GetLength(0); x++)
            {
                for (int y = 0; y < m.MyMaze.GetLength(1); y++)
                {
                    if (m.MyMaze[x, y].upperWall)//верхня стіна
                    {
                        wall                 = new Line();
                        wall.Stroke          = System.Windows.Media.Brushes.Blue;
                        wall.StrokeThickness = thickness;

                        wall.X1 = x * size;
                        wall.Y1 = y * size;

                        wall.X2 = x * size + size;
                        wall.Y2 = y * size;
                        canvas.Children.Add(wall);
                    }

                    if (m.MyMaze[x, y].lowerWall)//нижня стіна
                    {
                        wall                 = new Line();
                        wall.Stroke          = System.Windows.Media.Brushes.Blue;
                        wall.StrokeThickness = thickness;

                        wall.X1 = x * size;
                        wall.Y1 = y * size + size;

                        wall.X2 = x * size + size;
                        wall.Y2 = y * size + size;
                        canvas.Children.Add(wall);
                    }

                    if (m.MyMaze[x, y].leftWall)//ліва стіна
                    {
                        wall                 = new Line();
                        wall.Stroke          = System.Windows.Media.Brushes.Blue;
                        wall.StrokeThickness = thickness;

                        wall.X1 = x * size;
                        wall.Y1 = y * size;

                        wall.X2 = x * size;
                        wall.Y2 = y * size + size;
                        canvas.Children.Add(wall);
                    }

                    if (m.MyMaze[x, y].rightWall)//права стіна
                    {
                        wall                 = new Line();
                        wall.Stroke          = System.Windows.Media.Brushes.Blue;
                        wall.StrokeThickness = thickness;

                        wall.X1 = x * size + size;
                        wall.Y1 = y * size;

                        wall.X2 = x * size + size;
                        wall.Y2 = y * size + size;
                        canvas.Children.Add(wall);
                    }
                }
            }
        }