Skip to content

Форми

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

GameMenu

Почетен екран на играта. Елементи кои ги содржи:

  • Play копче за почеток на нова игра, при клик се отвара нова GameScreen форма
  • Customize копче за персонализација на карактерот и промена на име на играч, при клик се отвара нова Customizeформа
  • Exit копче за излез од апликацијата
  • Text Label, за приказ на име на играч, highscore, изиграни и победени игри
  • Text Label, за приказ на helpScreen form

    Menu
    GameMenu класата ги содржи следниве променливи, објекти:
  • player: објект од тип Player
  • gameScreen: инстанца од класа gameScreen
  • customize: инстанца од класа Customize
  • helpScreen: инстанца од класа HelpScreen
       public Player player;
        private SoundPlayer sound = new SoundPlayer(Properties.Resources.Start);
        private GameScreen gameScreen;
        private Customize customize;
        private HelpScreen helpScreen;
        public GameMenu()
        {
            InitializeComponent();
            this.FormBorderStyle = FormBorderStyle.None;
            sound.PlayLooping();
            player = new Player();
            UpdateLabel();
        }

Методи: btnPlay_Click, createGame, UpdateLabel, ShowAgain, btnCustomize, btnExit_Click, DisableMenu, EnableMenu, lblHelp_MouseEnter, lblHelp_MouseLeave, lblHelp_Click

GameScreen

Ги содржи сите променливи, објекти кои се потребни за една игра односно:

  • evilBlob: објект од тип EvilBlob
  • maze: инстанца од класа Maze
  • cat: инстанца од класа Cat
  • sushi: инстанца од класа Sushi
  • gameInfo: инстанца од класа GameInfo
  • menu: инстанца од класа GameMenu
  • g: инстанца од класа Gрaphics, се користи за цртање на лавиринтот
  • timer: инстанца од класа Timer, се користи за цртање на лавиринтот
  • loadedMaze: bool променлива која е true доколку лавиринтот е нацртан
  • gameOver: инстанца од класа GameOverScreen, форма која се прикажува кога е крај и се губи во играта
  • gameWin: инстанца од класа WinnerScreen , форма која се прикажува кога е крај и се победува во играта
  • newCat: променлива која укажува дали е отклучена нова мачка како Achievement

Gameplay

        //game elements
        public EvilBlob evilBlob;
        public Maze maze;
        public Cat cat;
        public Sushi sushi;
        public GameInfo gameInfo;
        public GameMenu menu;

        //used for drawing the maze
        private Graphics g;
        private Timer timer = new Timer();
        private bool loadedMaze = false;

        //win and game over forms
        private GameOverScreen gameOver;
        private WinnerScreen gameWin;
        public int newCat;

        public GameScreen(GameMenu menu)
        {
            InitializeComponent();
            this.FormBorderStyle = FormBorderStyle.None;
            this.menu = menu;
            DoubleBuffered = true;
            newCat = menu.player.UpdatePlayed();

            //these are used for maze loading
            g = this.CreateGraphics();//od sega
            timer.Interval = 1000;
            timer.Start();
            timer.Tick += new EventHandler(timerT);    
            
        }

Методи: timerT, SetupGame, OnKeyDown, GameOver, WinGame, GoBackClick, StopGame, goBack_MouseEnter, goBack_MouseLeave, CheckForCollision

Customize

Екран за пресонализација

        private GameMenu menu;
        public int selected { set; get; }
        private bool grayUnlocked;
        private bool pinkUnlocked;
        private bool yellowUnlocked;
        public Customize(GameMenu menu)
        {
            InitializeComponent();
            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
            this.menu = menu;
            selected = (int)Settings.Default["CatIndex"];
            grayUnlocked = (bool)Settings.Default["GrayUnlocked"];
            pinkUnlocked = (bool)Settings.Default["PinkUnlocked"];
            yellowUnlocked = (bool)Settings.Default["YellowUnlocked"];
            menu.DisableMenu();
            UpdateColors();
            UpdateLabel(selected);
        }

Customize

Clone this wiki locally