Skip to content

GameInfo

Marija Gjorgjieva edited this page Jul 3, 2022 · 1 revision

Во GameInfo класата се содржат сите променливи, објекти и методи кои се потребни за приказ и чување за време на игра:

  • Points : број на поени кои играчот ги има за време на играта, еднаков на бројот на собрано суши по патеката
  • gameInfo: инстанца од класа Label , која ги прикажува деталите на играта на екран, се додава на контролите на GameScreen
  • lives : број на животи кои играчот ги има за време на играта
  • livesImages: листа од објекти од тип PictureBox, кои ги прикажуваат сликите од животи на игачот
  • sound : инстанца од класа SoundPlayer , музика која се свири при средба со EvilBlob
  • gameScreen: инстанца од класа GameScreen
        public int Points { set; get; } = 0;
        private GameScreen gameScreen;
        Label gameInfo;
        public int lives { set; get; } = -1;
        private List<PictureBox> livesImages;
        private static SoundPlayer sound = new SoundPlayer(Properties.Resources.GhostEncounter);

        public GameInfo(GameScreen gameScreen)
        {
            gameInfo = new Label();
            this.gameScreen = gameScreen;
            MakeLabel();
            MakeLogo();
            MakeLives();        
        }

Методи

MakeLives

Иницијализирање на livesImages, креирање и поставување на сликите од срца на GameScreen.

        private void MakeLives()
        {
            livesImages = new List<PictureBox>();
            livesImages.Add(new PictureBox());
            livesImages.Add(new PictureBox());
            livesImages.Add(new PictureBox());
            int xPos = 800 - 30 * 3;
            for (int i = 0; i < 3; i++)
            {
                livesImages[i].Image = Properties.Resources.FullHeart;
                livesImages[i].Location = new Point(xPos, 2);
                livesImages[i].Size = new Size(30, 30);
                gameScreen.Controls.Add(livesImages[i]);
                livesImages[i].SizeMode = PictureBoxSizeMode.StretchImage;
                livesImages[i].BackgroundImage = Properties.Resources.BrickTile;
                livesImages[i].BringToFront();
                xPos += 30;
            }
        }

MakeLogo

Поставување на сликата од лого на играта на центарот од лавиринтот.

        private void MakeLogo()
        {
            PictureBox logo = new PictureBox();
            logo.Image = Properties.Resources.Logo;
            logo.Location = new Point(240, 360);
            logo.Size = new Size(320, 80);
            gameScreen.Controls.Add(logo);
            logo.SizeMode = PictureBoxSizeMode.CenterImage;
            logo.BackgroundImage = Properties.Resources.BrickTile;
            logo.BringToFront();
        }

MakeLabel

Подесување и поставување на gameInfo лабелата на gameScreen.

        private void MakeLabel()
        {
            gameInfo.Text = String.Format("Player:{0}   Points:{1}", gameScreen.menu.player.playerName, Points);
            gameInfo.Location = new Point(0, 2);
            gameInfo.Font = new Font("Bahnschrift", 12, FontStyle.Bold);
            gameInfo.TextAlign = ContentAlignment.MiddleCenter;
            gameInfo.AutoSize = false;
            gameInfo.Width = 40 * 6;
            gameInfo.Height = 28;
            gameScreen.Controls.Add(gameInfo);
            gameInfo.BackColor = ColorTranslator.FromHtml("#F9B9BA");
            gameInfo.ForeColor = Color.White;
            gameInfo.BorderStyle = BorderStyle.Fixed3D;
            gameInfo.BringToFront();
        }

UpdateLabel

Ажурурање на gameInfo лабелата.

        public void UpdateLabel()
        {
            gameInfo.Text = String.Format("Player: {0}   Points: {1}", gameScreen.menu.player.playerName, gameScreen.gameInfo.Points);
        }

LivesCheck

При повик се прави проверка за преостанати животи, доколку бројот на изгубени животи е на максимум, тогаш се прави повик на gameScreen.GameOver(), а во спротива се свири само мелодија за средба со EvilBlob со повик на sound.Play(). Се сменува сликата од полно во празно срце со livesImages[lives].Image = Properties.Resources.BlankHeart.

        public void LivesCheck()
        {
            
            if (lives == 2)
            {
                gameScreen.GameOver();
            }
            else
            {
                sound.Play();
            }
            livesImages[lives].Image = Properties.Resources.BlankHeart;

        }
Clone this wiki locally