Beispiel #1
0
 private void btnNextLevel_Click(object sender, EventArgs e)
 {
     using (var frmGameOver = new frmGameOverLevel2())
     {
         Visible = false;
         frmGameOver.ShowDialog();
         Close();
     }
 }
        private void timer1_Tick(object sender, EventArgs e)
        {
            //showing the score on the board
            label1.Text = "Score:" + score;

            if (goleft)
            {
                //moving player to the left.
                PacMan.Left -= speedlevel1;
            }
            if (goright)
            {
                //moving to the right
                PacMan.Left += speedlevel1;
            }
            if (goup)
            {
                //moving to the top
                PacMan.Top -= speedlevel1;
            }
            if (godown)
            {
                //moving down
                PacMan.Top += speedlevel1;
            }
            //player movements code end

            //moving ghosts and bumping with the walls
            redGhost.Left    += ghost1;
            yellowGhost.Left += ghost2;

            //if the red ghost hits the picture box 4 then we reverse the speed
            if (redGhost.Bounds.IntersectsWith(pictureBox1.Bounds))
            {
                ghost1 = -ghost1;
            }
            //if the red ghost hits the picture box 3 then we reverse the speed
            else if (redGhost.Bounds.IntersectsWith(pictureBox2.Bounds))
            {
                ghost1 = -ghost1;
            }
            //if the yellow ghost hits the picture box 1 then we reverse the speed
            if (yellowGhost.Bounds.IntersectsWith(pictureBox3.Bounds))
            {
                ghost2 = -ghost2;
            }
            //if the yellow ghost hits the picture box 2 then we reverse the speed
            if (yellowGhost.Bounds.IntersectsWith(pictureBox4.Bounds))
            {
                ghost2 = -ghost2;
            }
            //moving ghosts and bumping with the walls end

            //for loop to check walls, ghost and points
            foreach (Control x in this.Controls)
            {
                // check if x is a PictureBox
                if (x is PictureBox)
                {
                    // get the tag for x as a string
                    string aTag = (string)x.Tag;

                    // if the tag is a wall or a ghost then..
                    if (aTag == "wall" || aTag == "ghost")
                    {
                        // get x as a PictureBox
                        PictureBox aPictureBox = (PictureBox)x;

                        // if pacman collides with a wall or a ghost or
                        if (aPictureBox.Bounds.IntersectsWith(PacMan.Bounds) == true)
                        {
                            PacMan.Left    = 0;
                            PacMan.Top     = 25;
                            label2.Text    = "Game Over";
                            label2.Visible = true;
                            timer1.Stop();

                            using (var Pacman_Game__level_2_ = new frmGameOverLevel2())
                            {
                                Visible = false;
                                Pacman_Game__level_2_.ShowDialog();
                                Close();
                            }
                        }
                    }
                    // if the tag is a coin
                    else if (aTag == "coin")
                    {
                        // get x as a PictureBox
                        PictureBox aPictureBox = (PictureBox)x;

                        // if pacman collided with a coin, then...
                        if (aPictureBox.Bounds.IntersectsWith(PacMan.Bounds) == true)
                        {
                            //SoundPlayer

                            //remove the coin
                            Controls.Remove(x);

                            //add to the score
                            score++;

                            if (score == 30)
                            {
                                label2.Text    = "You Win";
                                label2.Visible = true;
                                timer1.Stop();

                                using (var Pacman_Game__level_2_ = new frmGameOverLevel2())
                                {
                                    Visible = false;
                                    Pacman_Game__level_2_.ShowDialog();
                                    Close();
                                }
                            }
                        }
                    }
                }
                //creating boundaries
                if (x is PictureBox && x.Tag == "wallRight")
                {
                    if (((PictureBox)x).Bounds.IntersectsWith(PacMan.Bounds))
                    {
                        PacMan.Left -= speedlevel1;
                    }
                }
                if (x is PictureBox && x.Tag == "wallLeft")
                {
                    if (((PictureBox)x).Bounds.IntersectsWith(PacMan.Bounds))
                    {
                        PacMan.Left += speedlevel1;
                    }
                }
                if (x is PictureBox && x.Tag == "wallDown")
                {
                    if (((PictureBox)x).Bounds.IntersectsWith(PacMan.Bounds))
                    {
                        PacMan.Top -= speedlevel1;
                    }
                }
                if (x is PictureBox && x.Tag == "wallUp")
                {
                    if (((PictureBox)x).Bounds.IntersectsWith(PacMan.Bounds))
                    {
                        PacMan.Top += speedlevel1;
                    }
                }
            }

            //end of the loop checking walls, points and ghosts

            //ghost 3 going crazy here
            pinkGhost.Left += ghost3x;
            pinkGhost.Top  += ghost3y;

            if (pinkGhost.Left < 1 ||
                pinkGhost.Left + pinkGhost.Width > ClientSize.Width - 2 ||
                (pinkGhost.Bounds.IntersectsWith(pictureBox4.Bounds)) ||
                (pinkGhost.Bounds.IntersectsWith(pictureBox3.Bounds)) ||
                (pinkGhost.Bounds.IntersectsWith(pictureBox1.Bounds)) ||
                (pinkGhost.Bounds.IntersectsWith(pictureBox2.Bounds))
                )
            {
                ghost3x = -ghost3x;
            }
            if (pinkGhost.Top < 1 || pinkGhost.Top + pinkGhost.Height > ClientSize.Height - 2)
            {
                ghost3y = -ghost3y;
            }
            //end of the crazy ghost movement
        }