示例#1
0
        public void drawMap(bool newMap) //if bool is true, it creates NEW instances. If false, it redraws them instead.
        {
            int pacdotCount = 0;
            int bigdotCount = 0;
            int tilesCount  = 0;

            for (int rows = 0; rows < WorldModel.Map2D.GetLength(0); rows++)
            {
                for (int colls = 0; colls < WorldModel.Map2D.GetLength(1); colls++)
                {
                    switch (WorldModel.Map2D[rows, colls])
                    {
                    case 0:
                        if (newMap)
                        {
                            PacDotController pacDot = new PacDotController();
                            player.subscribeObserver(pacDot);       //subscribes to player
                            pacDot.subscribeObserverToPacDot(score);
                            pacDot.subscribeObserverToPacDot(this); //subscribes the worldcontroller to pacdot
                            pacDot.view.Top  = rows * 16;
                            pacDot.view.Left = colls * 16;
                            pacDot.Model.X   = colls;
                            pacDot.Model.Y   = rows;
                            this.pacdots.Add(pacDot);
                            this.view.Controls.Add(pacDot.view);
                        }
                        else
                        {
                            PacDotUI temp = new PacDotUI();
                            pacdots[pacdotCount].view.pacDotImage.Image = temp.pacDotImage.Image;
                            pacdots[pacdotCount].Model.isEaten          = false;
                            PacDotController.pacDotsEaten = 0;
                            pacdotCount++;
                        }
                        break;

                    case 1:
                        if (newMap)
                        {
                            TileController wall = new TileController();
                            wall.Model.X   = colls;
                            wall.Model.Y   = rows;
                            wall.View.Top  = rows * 16;
                            wall.View.Left = colls * 16;
                            wall.View.pictureBox1.Image = Pacman.Properties.Resources.wall2;    //wallsprite;
                            this.tiles.Add(wall);
                            this.view.Controls.Add(wall.View);
                        }
                        else
                        {
                            if (WorldModel.FlashWhite)
                            {
                                tiles[tilesCount].View.pictureBox1.Image = Pacman.Properties.Resources.wall3;
                                tiles[tilesCount].View.pictureBox1.Refresh();
                            }
                            else
                            {
                                tiles[tilesCount].View.pictureBox1.Image = Pacman.Properties.Resources.wall2;
                                tiles[tilesCount].View.pictureBox1.Refresh();
                            }
                            tilesCount++;
                        }

                        break;

                    case 3:
                        if (newMap)
                        {
                            BigDotController bigDot = new BigDotController();
                            bigdots.Add(bigDot);     //add to the list
                            player.subscribeObserver(bigDot);
                            bigDot.subscribeObserverToBigDot(score);
                            bigDot.view.Top  = rows * 16;
                            bigDot.view.Left = colls * 16;
                            bigDot.Model.X   = colls;
                            bigDot.Model.Y   = rows;
                            this.view.Controls.Add(bigDot.view);
                        }
                        else
                        {
                            bigdots[bigdotCount].Model.isEaten = false;
                            bigdotCount++;
                        }
                        break;

                    case 4:
                        if (newMap)
                        {
                            TileController blackTile1 = new TileController();    //blacktile
                            blackTile1.Model.X   = colls;
                            blackTile1.Model.Y   = rows;
                            blackTile1.View.Top  = rows * 16;
                            blackTile1.View.Left = colls * 16;
                            tiles.Add(blackTile1);
                            this.view.Controls.Add(blackTile1.View);
                        }
                        else
                        {
                            tilesCount++;
                        }

                        break;

                    case 5:
                        DoorTileController doorTile = new DoorTileController();
                        doorTile.Model.X   = colls;
                        doorTile.Model.Y   = rows;
                        doorTile.View.Top  = rows * 16;
                        doorTile.View.Left = colls * 16;
                        this.view.Controls.Add(doorTile.View);
                        break;
                    }
                }
            }
        }
示例#2
0
 public PacDotController()
 {
     pacDotAmmount++; //every time a new pacot is instantiated the total ammount goes up
     this.pacDotModel = new PacDotModel();
     this.pacDotUI    = new PacDotUI();
 }