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(); }
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); }
public static void RemoveBall(Ball ball) { CollisionsSystem.RemoveItemForCollision(ball); Balls.balls.Remove(ball); if (balls.Count == 0) { GameControl.loseLive = true; } }
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); } } }
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; } }
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); }