public Board(int level)
        {
            string levelNum = level.ToString().PadLeft(2, '0');

            try
            {
                string path = ConfigurationManager.AppSettings["pathLevels"];

                // list of bricks within the level
                FileStream      fs = new FileStream(path + levelNum + ".lvl", FileMode.Open, FileAccess.Read);
                BinaryFormatter bf = new BinaryFormatter();
                Board.bricks = (List <Brick>)bf.Deserialize(fs);
                fs.Close();

                // new empty list of rewards & fires
                Board.shots   = new List <Shot>();
                Board.rewards = new List <Reward>();

                // register for collisions checks
                CollisionsSystem.RegisterListForCollision(Board.bricks);
            }

            catch (FileNotFoundException) { throw new ApplicationException("File for level " + levelNum + " not found."); }
            catch (Exception ex) { throw ex; }
        }
        public OutputLine()
        {
            base.location = new Point(0, SCREEN_HEIGHT - LINE_HEIGHT);

            // register for collisions checks
            CollisionsSystem.RegisterItemForCollision(this);
        }
        public Reward(eRewardType reward, Point position)
        {
            this.RewardType = reward;
            base.location   = position;

            Random random = new Random(DateTime.Now.Millisecond);

            this.verticalMovement = CONST_VERTICAL_MOVEMENT + random.Next(4);

            string path = ConfigurationManager.AppSettings["pathImages"];

            switch (reward)
            {
            case eRewardType.WidePad:       base.image = Image.FromFile(path + "Reward_WidePad.png", false); break;

            case eRewardType.FirePad:       base.image = Image.FromFile(path + "Reward_FirePad.png", false); break;

            case eRewardType.SlowBall:      base.image = Image.FromFile(path + "Reward_SlowBall.png", false); break;

            case eRewardType.DemolitionBall: base.image = Image.FromFile(path + "Reward_DemolitionBall.png", false); break;

            case eRewardType.DoubleBall:    base.image = Image.FromFile(path + "Reward_DoubleBall.png", false); break;

            case eRewardType.TripleBall:    base.image = Image.FromFile(path + "Reward_TipleBall.png", false); break;

            case eRewardType.WinLevel:      base.image = Image.FromFile(path + "Reward_WinLevel.png", false); break;
            }

            CollisionsSystem.RegisterItemForCollision(this);
        }
        public static void ResetRewards()
        {
            foreach (Reward reward in rewards)
            {
                CollisionsSystem.RemoveItemForCollision(reward);
            }

            Board.rewards.Clear();
        }
        public static void ResetBricks()
        {
            foreach (Brick brick in bricks)
            {
                CollisionsSystem.RemoveItemForCollision(brick);
            }

            Board.bricks.Clear();
        }
        public static void ResetShots()
        {
            foreach (Shot shot in Board.shots)
            {
                CollisionsSystem.RemoveItemForCollision(shot);
            }

            Board.shots.Clear();
        }
Exemple #7
0
        public void DoubleBallEvent(object sender, EventArgs e)
        {
            Ball ball = new Ball((int)inputType, balls[0].Location, Ball.eOriginalDirection.UpperRight);

            Balls.balls.Add(ball);

            // register for collisions checks (ball allways in first place within the list)
            CollisionsSystem.RegisterItemForCollision(ball, 0);
        }
Exemple #8
0
        public static void RemoveBall(Ball ball)
        {
            CollisionsSystem.RemoveItemForCollision(ball);
            Balls.balls.Remove(ball);

            if (balls.Count == 0)
            {
                GameControl.loseLive = true;
            }
        }
Exemple #9
0
        public Balls(eInputType inputType)
        {
            this.inputType = inputType;

            Ball ball = new Ball((int)this.inputType);

            Balls.balls = new List <Ball>();
            Balls.balls.Add(ball);

            // register for collisions checks (ball allways in first place within the list)
            CollisionsSystem.RegisterItemForCollision(ball, 0);
        }
 public void Fire()
 {
     if (shotingPadTime > 0)
     {
         if (Board.shots.Count == 0)
         {
             Shot oShot = new Shot(new Point(this.Location.X + (this.GetWidth() / 2) - (Shot.SHOT_WIDTH / 2), this.Location.Y));
             Board.AddShot(oShot);
             CollisionsSystem.RegisterItemForCollision(oShot);
         }
     }
 }
Exemple #11
0
        public frmGame()
        {
            InitializeComponent();

            try
            {
                // graphics quality
                this.graphics = this.CreateGraphics();
                this.graphics.SmoothingMode      = SmoothingMode.HighQuality;
                this.graphics.CompositingMode    = CompositingMode.SourceCopy;
                this.graphics.CompositingQuality = CompositingQuality.HighQuality;

                // background image
                string path = ConfigurationManager.AppSettings["pathImages"];
                this.BackgroundImage = Image.FromFile(path + "GameBackground.png", false);

                // get the input method (keyboard/mouse) from settings
                string input = ConfigurationManager.AppSettings["input"];
                this.inputType = (input == "Mouse" ? Balls.eInputType.Mouse : Balls.eInputType.Keyboard);

                if (inputType == Balls.eInputType.Mouse)
                {
                    this.MouseMove += new MouseEventHandler(this.frmGame_MouseMove);
                }

                // world objects
                this.balls            = new Balls(inputType);
                this.board            = new Board(1);
                this.playerPad        = new PlayerPad();
                this.outputLine       = new OutputLine();
                this.gameControl      = new GameControl();
                this.scoreBoard       = new ScoreBoard();
                this.highScores       = new HighScores();
                this.particlesSystem  = new ParticlesSystem();
                this.collisionsSystem = new CollisionsSystem();

                // add the listeners for objects comunication
                this.playerPad.DoubleBallRewardEvent     += new PlayerPad.DoubleBallEventHandler(balls.DoubleBallEvent);
                this.playerPad.TripleBallRewardEvent     += new PlayerPad.TripleBallEventHandler(balls.TripleBallEvent);
                this.playerPad.WinLevelRewardEvent       += new PlayerPad.WinLevelEventHandler(gameControl.WinLevelEvent);
                this.playerPad.SlowBallRewardEvent       += new PlayerPad.SlowBallEventHandler(balls.SlowBallEvent);
                this.playerPad.DemolitionBallRewardEvent += new PlayerPad.DemolitionBallEventHandler(balls.DemolitionBallEvent);

                // start
                this.tmrStart.Enabled = true;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error);
                Application.Exit();
            }
        }
        public PlayerPad()
        {
            try
            {
                base.location = new Point(DEFAULT_X, DEFAULT_Y);

                string sPath = ConfigurationManager.AppSettings["pathImages"];
                base.image        = Image.FromFile(@sPath + "PlayerPad.png", false);
                this.shotingImage = Image.FromFile(@sPath + "PlayerPadShoting.png", false);

                // register for collisions checks
                CollisionsSystem.RegisterItemForCollision(this);
            }

            catch (Exception ex) { throw ex; }
        }
Exemple #13
0
        public void Reset()
        {
            this.slowBallTime        = 0;
            Balls.demolitionBallTime = 0;

            // remove all balls from collision detection
            foreach (Ball b in balls)
            {
                CollisionsSystem.RemoveItemForCollision(b);
            }

            Ball ball = new Ball((int)inputType);

            Balls.balls = new List <Ball>();
            Balls.balls.Add(ball);

            // register for collisions checks (ball allways in first place within the list)
            CollisionsSystem.RegisterItemForCollision(ball, 0);
        }
        public Board(string custom)
        {
            try
            {
                string path = ConfigurationManager.AppSettings["pathLevels"];

                // list of bricks within the level
                FileStream      fs = new FileStream(path + custom, FileMode.Open, FileAccess.Read);
                BinaryFormatter bf = new BinaryFormatter();
                bricks = (List <Brick>)bf.Deserialize(fs);
                fs.Close();

                /*
                 * lstBricks = new List<cBrick>();
                 * lstBricks.Add(new cBrick(50, 70, cBrick.eBrickType.Normal, cBrick.eRewardType.None, cBrick.eColor.Gray));
                 * lstBricks.Add(new cBrick(100, 70, cBrick.eBrickType.Normal, cBrick.eRewardType.None, cBrick.eColor.Gray));
                 * lstBricks.Add(new cBrick(150, 70, cBrick.eBrickType.Normal, cBrick.eRewardType.None, cBrick.eColor.Gray));
                 * lstBricks.Add(new cBrick(200, 70, cBrick.eBrickType.Normal, cBrick.eRewardType.None, cBrick.eColor.Gray));
                 * lstBricks.Add(new cBrick(250, 70, cBrick.eBrickType.Normal, cBrick.eRewardType.None, cBrick.eColor.Gray));
                 * lstBricks.Add(new cBrick(300, 70, cBrick.eBrickType.Normal, cBrick.eRewardType.None, cBrick.eColor.Gray));
                 * lstBricks.Add(new cBrick(350, 70, cBrick.eBrickType.Normal, cBrick.eRewardType.None, cBrick.eColor.Gray));
                 * lstBricks.Add(new cBrick(400, 70, cBrick.eBrickType.Normal, cBrick.eRewardType.None, cBrick.eColor.Gray));
                 * lstBricks.Add(new cBrick(450, 70, cBrick.eBrickType.Normal, cBrick.eRewardType.None, cBrick.eColor.Gray));
                 * lstBricks.Add(new cBrick(500, 70, cBrick.eBrickType.Normal, cBrick.eRewardType.None, cBrick.eColor.Gray));
                 * lstBricks.Add(new cBrick(550, 70, cBrick.eBrickType.Normal, cBrick.eRewardType.None, cBrick.eColor.Gray));
                 *
                 * lstBricks.Add(new cBrick(50, 95, cBrick.eBrickType.Normal, cBrick.eRewardType.None, cBrick.eColor.Red));
                 * lstBricks.Add(new cBrick(100, 95, cBrick.eBrickType.Normal, cBrick.eRewardType.None, cBrick.eColor.Red));
                 * lstBricks.Add(new cBrick(150, 95, cBrick.eBrickType.Normal, cBrick.eRewardType.None, cBrick.eColor.Red));
                 * lstBricks.Add(new cBrick(200, 95, cBrick.eBrickType.Normal, cBrick.eRewardType.None, cBrick.eColor.Red));
                 * lstBricks.Add(new cBrick(250, 95, cBrick.eBrickType.Normal, cBrick.eRewardType.None, cBrick.eColor.Red));
                 * lstBricks.Add(new cBrick(300, 95, cBrick.eBrickType.Normal, cBrick.eRewardType.None, cBrick.eColor.Red));
                 * lstBricks.Add(new cBrick(350, 95, cBrick.eBrickType.Normal, cBrick.eRewardType.None, cBrick.eColor.Red));
                 * lstBricks.Add(new cBrick(400, 95, cBrick.eBrickType.Normal, cBrick.eRewardType.None, cBrick.eColor.Red));
                 * lstBricks.Add(new cBrick(450, 95, cBrick.eBrickType.Normal, cBrick.eRewardType.None, cBrick.eColor.Red));
                 * lstBricks.Add(new cBrick(500, 95, cBrick.eBrickType.Normal, cBrick.eRewardType.None, cBrick.eColor.Red));
                 * lstBricks.Add(new cBrick(550, 95, cBrick.eBrickType.Normal, cBrick.eRewardType.None, cBrick.eColor.Red));
                 *
                 * lstBricks.Add(new cBrick(50, 120, cBrick.eBrickType.Normal, cBrick.eRewardType.None, cBrick.eColor.Yellow));
                 * lstBricks.Add(new cBrick(100, 120, cBrick.eBrickType.Normal, cBrick.eRewardType.None, cBrick.eColor.Yellow));
                 * lstBricks.Add(new cBrick(150, 120, cBrick.eBrickType.Normal, cBrick.eRewardType.None, cBrick.eColor.Yellow));
                 * lstBricks.Add(new cBrick(200, 120, cBrick.eBrickType.Normal, cBrick.eRewardType.None, cBrick.eColor.Yellow));
                 * lstBricks.Add(new cBrick(250, 120, cBrick.eBrickType.Normal, cBrick.eRewardType.None, cBrick.eColor.Yellow));
                 * lstBricks.Add(new cBrick(300, 120, cBrick.eBrickType.Normal, cBrick.eRewardType.None, cBrick.eColor.Yellow));
                 * lstBricks.Add(new cBrick(350, 120, cBrick.eBrickType.Normal, cBrick.eRewardType.None, cBrick.eColor.Yellow));
                 * lstBricks.Add(new cBrick(400, 120, cBrick.eBrickType.Normal, cBrick.eRewardType.None, cBrick.eColor.Yellow));
                 * lstBricks.Add(new cBrick(450, 120, cBrick.eBrickType.Normal, cBrick.eRewardType.None, cBrick.eColor.Yellow));
                 * lstBricks.Add(new cBrick(500, 120, cBrick.eBrickType.Normal, cBrick.eRewardType.None, cBrick.eColor.Yellow));
                 * lstBricks.Add(new cBrick(550, 120, cBrick.eBrickType.Normal, cBrick.eRewardType.None, cBrick.eColor.Yellow));
                 *
                 * lstBricks.Add(new cBrick(50, 145, cBrick.eBrickType.Normal, cBrick.eRewardType.None, cBrick.eColor.Blue));
                 * lstBricks.Add(new cBrick(100, 145, cBrick.eBrickType.Normal, cBrick.eRewardType.None, cBrick.eColor.Blue));
                 * lstBricks.Add(new cBrick(150, 145, cBrick.eBrickType.Normal, cBrick.eRewardType.None, cBrick.eColor.Blue));
                 * lstBricks.Add(new cBrick(200, 145, cBrick.eBrickType.Normal, cBrick.eRewardType.None, cBrick.eColor.Blue));
                 * lstBricks.Add(new cBrick(250, 145, cBrick.eBrickType.Normal, cBrick.eRewardType.None, cBrick.eColor.Blue));
                 * lstBricks.Add(new cBrick(300, 145, cBrick.eBrickType.Normal, cBrick.eRewardType.None, cBrick.eColor.Blue));
                 * lstBricks.Add(new cBrick(350, 145, cBrick.eBrickType.Normal, cBrick.eRewardType.None, cBrick.eColor.Blue));
                 * lstBricks.Add(new cBrick(400, 145, cBrick.eBrickType.Normal, cBrick.eRewardType.None, cBrick.eColor.Blue));
                 * lstBricks.Add(new cBrick(450, 145, cBrick.eBrickType.Normal, cBrick.eRewardType.None, cBrick.eColor.Blue));
                 * lstBricks.Add(new cBrick(500, 145, cBrick.eBrickType.Normal, cBrick.eRewardType.None, cBrick.eColor.Blue));
                 * lstBricks.Add(new cBrick(550, 145, cBrick.eBrickType.Normal, cBrick.eRewardType.None, cBrick.eColor.Blue));
                 *
                 * lstBricks.Add(new cBrick(50, 170, cBrick.eBrickType.Normal, cBrick.eRewardType.None, cBrick.eColor.Pink));
                 * lstBricks.Add(new cBrick(100, 170, cBrick.eBrickType.Normal, cBrick.eRewardType.None, cBrick.eColor.Pink));
                 * lstBricks.Add(new cBrick(150, 170, cBrick.eBrickType.Normal, cBrick.eRewardType.None, cBrick.eColor.Pink));
                 * lstBricks.Add(new cBrick(200, 170, cBrick.eBrickType.Normal, cBrick.eRewardType.None, cBrick.eColor.Pink));
                 * lstBricks.Add(new cBrick(250, 170, cBrick.eBrickType.Normal, cBrick.eRewardType.None, cBrick.eColor.Pink));
                 * lstBricks.Add(new cBrick(300, 170, cBrick.eBrickType.Normal, cBrick.eRewardType.None, cBrick.eColor.Pink));
                 * lstBricks.Add(new cBrick(350, 170, cBrick.eBrickType.Normal, cBrick.eRewardType.None, cBrick.eColor.Pink));
                 * lstBricks.Add(new cBrick(400, 170, cBrick.eBrickType.Normal, cBrick.eRewardType.None, cBrick.eColor.Pink));
                 * lstBricks.Add(new cBrick(450, 170, cBrick.eBrickType.Normal, cBrick.eRewardType.None, cBrick.eColor.Pink));
                 * lstBricks.Add(new cBrick(500, 170, cBrick.eBrickType.Normal, cBrick.eRewardType.None, cBrick.eColor.Pink));
                 * lstBricks.Add(new cBrick(550, 170, cBrick.eBrickType.Normal, cBrick.eRewardType.None, cBrick.eColor.Pink));
                 *
                 * lstBricks.Add(new cBrick(50, 195, cBrick.eBrickType.Normal, cBrick.eRewardType.None, cBrick.eColor.Green));
                 * lstBricks.Add(new cBrick(100, 195, cBrick.eBrickType.Normal, cBrick.eRewardType.None, cBrick.eColor.Green));
                 * lstBricks.Add(new cBrick(150, 195, cBrick.eBrickType.Normal, cBrick.eRewardType.None, cBrick.eColor.Green));
                 * lstBricks.Add(new cBrick(200, 195, cBrick.eBrickType.Normal, cBrick.eRewardType.None, cBrick.eColor.Green));
                 * lstBricks.Add(new cBrick(250, 195, cBrick.eBrickType.Normal, cBrick.eRewardType.None, cBrick.eColor.Green));
                 * lstBricks.Add(new cBrick(300, 195, cBrick.eBrickType.Normal, cBrick.eRewardType.None, cBrick.eColor.Green));
                 * lstBricks.Add(new cBrick(350, 195, cBrick.eBrickType.Normal, cBrick.eRewardType.None, cBrick.eColor.Green));
                 * lstBricks.Add(new cBrick(400, 195, cBrick.eBrickType.Normal, cBrick.eRewardType.None, cBrick.eColor.Green));
                 * lstBricks.Add(new cBrick(450, 195, cBrick.eBrickType.Normal, cBrick.eRewardType.None, cBrick.eColor.Green));
                 * lstBricks.Add(new cBrick(500, 195, cBrick.eBrickType.Normal, cBrick.eRewardType.None, cBrick.eColor.Green));
                 * lstBricks.Add(new cBrick(550, 195, cBrick.eBrickType.Normal, cBrick.eRewardType.None, cBrick.eColor.Green));
                 *
                 * FileStream fs = new FileStream(sPath + "Default.lvl", FileMode.Create, FileAccess.Write);
                 * BinaryFormatter bf = new BinaryFormatter();
                 * bf.Serialize(fs, lstBricks);
                 * fs.Close();
                 */

                // new empty list of rewards & fires
                Board.shots   = new List <Shot>();
                Board.rewards = new List <Reward>();

                // register for collisions checks
                CollisionsSystem.RegisterListForCollision(Board.bricks);
            }

            catch (Exception ex) { throw ex; }
        }
 public static void RemoveShot(Shot shot)
 {
     CollisionsSystem.RemoveItemForCollision(shot);
     Board.shots.Remove(shot);
 }
 public static void RemoveBrick(Brick brick)
 {
     CollisionsSystem.RemoveItemForCollision(brick);
     Board.bricks.Remove(brick);
 }
 public static void RemoveReward(Reward reward)
 {
     CollisionsSystem.RemoveItemForCollision(reward);
     Board.rewards.Remove(reward);
 }