public override void Initialize() { this.briques = new List <Brique>(); for (int i = 0; i < this.nbBriques; i++) { Brique brique = new Brique(base.Game, "Textures/wall"); briques.Add(brique); this.Game.Components.Add(brique); } for (int i = 0; i < this.nbBriqueVitesse; i++) { BriqueDeVitesse brique = new BriqueDeVitesse(base.Game, "Textures/wall"); briques.Add(brique); this.Game.Components.Add(brique); } }
private void GenerateBrickWall() { int xpos, ypos; int color = 1, score = 40; Texture2D texture = _briqueTextures[(int)BriqueColor.Black]; Vector2 size = new Vector2(_briqueScale * texture.Width, _briqueScale * texture.Height); // == Vector2(sizeX, scale * texture.Height) for (int x = 0; x < NB_LIGNE_BRIQUE; x++) { ypos = (int)(OFFSET + x * size.Y); for (int y = 0; y < NB_COLONNE_BRIQUE; y++) { xpos = (int)(OFFSET + y * size.X); _briques[x, y] = new Brique(new Vector2(xpos, ypos), size, color, score); } color += 1; score -= 10; } }
public override void Initialize() { Position = new Vector2(_Viewport.X, _Viewport.Y); Briques = new List<Brique>(); //if (Niveau == 1) //{ // int EspacementHorizontal = 78; // int EspacementVertical = 52; // int InvertLigneToVie = 3; // for (int Ligne = 0; Ligne < 3; Ligne++) // { // for (int Colonne = 0; Colonne < 5; Colonne++) // { // Brique UneBrique = new Brique((BriqueLevel)(InvertLigneToVie - Ligne), _screenHeight, _screenWidth); // UneBrique.Initialize(); // UneBrique.PositionX += (Colonne * EspacementHorizontal); // UneBrique.PositionY += (Ligne * EspacementVertical); // Briques.Add(UneBrique); // UneBrique.indexOf = Briques.IndexOf(UneBrique); // } // } //} if (Niveau == 1) { int EspacementHorizontal = 60; int EspacementVertical = 52; int FirstBriquePositionX = 40; int FirstBriquePositionY = 100; int InvertLigneToVie = 3; for (int Ligne = 0; Ligne < 5; Ligne++) { for (int Colonne = 0; Colonne < 7; Colonne++) { Brique UneBrique; if (Ligne < 3) { UneBrique = new Brique((BriqueLevel)(InvertLigneToVie - Ligne), _Viewport.Height, _Viewport.Width); } else { UneBrique = new Brique(BriqueLevel.Pierre, _Viewport.Height, _Viewport.Width); } UneBrique.PositionX = FirstBriquePositionX; UneBrique.PositionY = FirstBriquePositionY; UneBrique.PositionX += (Colonne * EspacementHorizontal); UneBrique.PositionY += (Ligne * EspacementVertical); Briques.Add(UneBrique); } } } if (Niveau == 2) { int EspacementHorizontal = 60; int EspacementVertical = 24; int FirstBriquePositionX = 40; int FirstBriquePositionY = 50; for (int Ligne = 0; Ligne < 12; Ligne++) { for (int Colonne = 0; Colonne < 7; Colonne++) { if (Ligne > 0 && Ligne < 11 && (Colonne == 0 || Colonne == 6)) { Brique UneBrique = new Brique(BriqueLevel.Incassable, _Viewport.Height, _Viewport.Width); UneBrique.PositionX = FirstBriquePositionX; UneBrique.PositionY = FirstBriquePositionY; UneBrique.PositionX += (Colonne * EspacementHorizontal); UneBrique.PositionY += (Ligne * EspacementVertical); Briques.Add(UneBrique); } else if (Ligne == 0 || (Ligne == 11 && Colonne != 3)) { Brique UneBrique = new Brique(BriqueLevel.Incassable, _Viewport.Height, _Viewport.Width); UneBrique.PositionX = FirstBriquePositionX; UneBrique.PositionY = FirstBriquePositionY; UneBrique.PositionX += (Colonne * EspacementHorizontal); UneBrique.PositionY += (Ligne * EspacementVertical); Briques.Add(UneBrique); } else if(Ligne > 0 && Ligne < 11 && (Colonne == 2 || Colonne == 4) && Ligne != 5 && Ligne != 6) { Brique UneBrique = new Brique(BriqueLevel.Pierre, _Viewport.Height, _Viewport.Width); UneBrique.PositionX = FirstBriquePositionX; UneBrique.PositionY = FirstBriquePositionY; UneBrique.PositionX += (Colonne * EspacementHorizontal); UneBrique.PositionY += (Ligne * EspacementVertical); Briques.Add(UneBrique); } } } } if (Niveau == 3) { int EspacementHorizontal = 60; int FirstBriquePositionX = 11; int FirstBriquePositionY = 310; for (int Colonne = 0; Colonne < 8; Colonne++) { if (Colonne < 3 || Colonne > 4) { Brique UneBrique = new Brique(BriqueLevel.Incassable, _Viewport.Height, _Viewport.Width); UneBrique.PositionX = FirstBriquePositionX; UneBrique.PositionY = FirstBriquePositionY; UneBrique.PositionX += (Colonne * EspacementHorizontal); Briques.Add(UneBrique); } } Brique bla = new Brique(BriqueLevel.Incassable, _Viewport.Height, _Viewport.Width); bla.Position = new Vector2(FirstBriquePositionX + (3 * EspacementHorizontal) - (Brique.C_DEFAULT_BRIQUE_WIDTH / 2) - 1, 286); Briques.Add(bla); Brique bla2 = new Brique(BriqueLevel.Incassable, _Viewport.Height, _Viewport.Width); bla2.Position = new Vector2(FirstBriquePositionX + (4 * EspacementHorizontal) + (Brique.C_DEFAULT_BRIQUE_WIDTH / 2) + 1, 286); Briques.Add(bla2); Brique bla3 = new Brique(BriqueLevel.Incassable, _Viewport.Height, _Viewport.Width); bla3.Position = new Vector2(FirstBriquePositionX + (3 * EspacementHorizontal) - (Brique.C_DEFAULT_BRIQUE_WIDTH / 2) - 1, 262); Briques.Add(bla3); Brique bla4 = new Brique(BriqueLevel.Incassable, _Viewport.Height, _Viewport.Width); bla4.Position = new Vector2(FirstBriquePositionX + (4 * EspacementHorizontal) + (Brique.C_DEFAULT_BRIQUE_WIDTH / 2) + 1, 262); Briques.Add(bla4); Brique bla5 = new Brique(BriqueLevel.Incassable, _Viewport.Height, _Viewport.Width); bla5.Position = new Vector2(FirstBriquePositionX + (3 * EspacementHorizontal) - (Brique.C_DEFAULT_BRIQUE_WIDTH / 2) - 1, 238); Briques.Add(bla5); Brique bla6 = new Brique(BriqueLevel.Incassable, _Viewport.Height, _Viewport.Width); bla6.Position = new Vector2(FirstBriquePositionX + (3 * EspacementHorizontal) - (Brique.C_DEFAULT_BRIQUE_WIDTH / 2) - 1, 214); Briques.Add(bla6); Brique bla7 = new Brique(BriqueLevel.Incassable, _Viewport.Height, _Viewport.Width); bla7.Position = new Vector2(FirstBriquePositionX + (3 * EspacementHorizontal) - (Brique.C_DEFAULT_BRIQUE_WIDTH / 2) - 1, 190); Briques.Add(bla7); Brique bla8 = new Brique(BriqueLevel.Incassable, _Viewport.Height, _Viewport.Width); bla8.Position = new Vector2(FirstBriquePositionX + (4 * EspacementHorizontal) - (Brique.C_DEFAULT_BRIQUE_WIDTH / 2) - 1, 190); Briques.Add(bla8); Brique bla9 = new Brique(BriqueLevel.Incassable, _Viewport.Height, _Viewport.Width); bla9.Position = new Vector2(FirstBriquePositionX + (5 * EspacementHorizontal) - (Brique.C_DEFAULT_BRIQUE_WIDTH / 2) - 1, 190); Briques.Add(bla9); Brique bla10 = new Brique(BriqueLevel.Incassable, _Viewport.Height, _Viewport.Width); bla10.Position = new Vector2(FirstBriquePositionX + (5 * EspacementHorizontal) + (Brique.C_DEFAULT_BRIQUE_WIDTH / 2) + 1, 262); Briques.Add(bla10); Brique bla11 = new Brique(BriqueLevel.Incassable, _Viewport.Height, _Viewport.Width); bla11.Position = new Vector2(FirstBriquePositionX + (6 * EspacementHorizontal) + (Brique.C_DEFAULT_BRIQUE_WIDTH / 2) + 1, 262); Briques.Add(bla11); Brique bla12 = new Brique(BriqueLevel.Incassable, _Viewport.Height, _Viewport.Width); bla12.Position = new Vector2(FirstBriquePositionX + (6 * EspacementHorizontal) + (Brique.C_DEFAULT_BRIQUE_WIDTH / 2) + 1, 238); Briques.Add(bla12); Brique bla13 = new Brique(BriqueLevel.Incassable, _Viewport.Height, _Viewport.Width); bla13.Position = new Vector2(FirstBriquePositionX + (6 * EspacementHorizontal) + (Brique.C_DEFAULT_BRIQUE_WIDTH / 2) + 1, 214); Briques.Add(bla13); Brique bla14 = new Brique(BriqueLevel.Incassable, _Viewport.Height, _Viewport.Width); bla14.Position = new Vector2(FirstBriquePositionX + (6 * EspacementHorizontal) + (Brique.C_DEFAULT_BRIQUE_WIDTH / 2) + 1, 190); Briques.Add(bla14); Brique bla15 = new Brique(BriqueLevel.Incassable, _Viewport.Height, _Viewport.Width); bla15.Position = new Vector2(FirstBriquePositionX + (5 * EspacementHorizontal) - (Brique.C_DEFAULT_BRIQUE_WIDTH / 2) - 1, 166); Briques.Add(bla15); Brique bla16 = new Brique(BriqueLevel.Incassable, _Viewport.Height, _Viewport.Width); bla16.Position = new Vector2(FirstBriquePositionX + (6 * EspacementHorizontal) + (Brique.C_DEFAULT_BRIQUE_WIDTH / 2) + 1, 166); Briques.Add(bla16); Brique bla17 = new Brique(BriqueLevel.Incassable, _Viewport.Height, _Viewport.Width); bla17.Position = new Vector2(FirstBriquePositionX + (5 * EspacementHorizontal) - (Brique.C_DEFAULT_BRIQUE_WIDTH / 2) - 1, 142); Briques.Add(bla17); Brique bla18 = new Brique(BriqueLevel.Incassable, _Viewport.Height, _Viewport.Width); bla18.Position = new Vector2(FirstBriquePositionX + (6 * EspacementHorizontal) + (Brique.C_DEFAULT_BRIQUE_WIDTH / 2) + 1, 142); Briques.Add(bla18); Brique bla19 = new Brique(BriqueLevel.Incassable, _Viewport.Height, _Viewport.Width); bla19.Position = new Vector2(FirstBriquePositionX + (5 * EspacementHorizontal) - (Brique.C_DEFAULT_BRIQUE_WIDTH / 2) - 1, 118); Briques.Add(bla19); Brique bla20 = new Brique(BriqueLevel.Incassable, _Viewport.Height, _Viewport.Width); bla20.Position = new Vector2(FirstBriquePositionX + (6 * EspacementHorizontal) + (Brique.C_DEFAULT_BRIQUE_WIDTH / 2) + 1, 118); Briques.Add(bla20); Brique bla21 = new Brique(BriqueLevel.Incassable, _Viewport.Height, _Viewport.Width); bla21.Position = new Vector2(FirstBriquePositionX + (6 * EspacementHorizontal) + (Brique.C_DEFAULT_BRIQUE_WIDTH / 2) + 1, 94); Briques.Add(bla21); Brique bla22 = new Brique(BriqueLevel.Incassable, _Viewport.Height, _Viewport.Width); bla22.Position = new Vector2(FirstBriquePositionX + (6 * EspacementHorizontal) + (Brique.C_DEFAULT_BRIQUE_WIDTH / 2) + 1, 70); Briques.Add(bla22); Brique bla23 = new Brique(BriqueLevel.Incassable, _Viewport.Height, _Viewport.Width); bla23.Position = new Vector2(FirstBriquePositionX + (6 * EspacementHorizontal) + (Brique.C_DEFAULT_BRIQUE_WIDTH / 2) + 1, 46); Briques.Add(bla23); Brique bla24 = new Brique(BriqueLevel.Incassable, _Viewport.Height, _Viewport.Width); bla24.Position = new Vector2(FirstBriquePositionX + (5 * EspacementHorizontal) + (Brique.C_DEFAULT_BRIQUE_WIDTH / 2) + 1, 46); Briques.Add(bla24); Brique bla25 = new Brique(BriqueLevel.Incassable, _Viewport.Height, _Viewport.Width); bla25.Position = new Vector2(FirstBriquePositionX + (4 * EspacementHorizontal) + (Brique.C_DEFAULT_BRIQUE_WIDTH / 2) + 1, 46); Briques.Add(bla25); Brique bla26 = new Brique(BriqueLevel.Incassable, _Viewport.Height, _Viewport.Width); bla26.Position = new Vector2(FirstBriquePositionX + (3 * EspacementHorizontal) + (Brique.C_DEFAULT_BRIQUE_WIDTH / 2) + 1, 46); Briques.Add(bla26); Brique bla27 = new Brique(BriqueLevel.Incassable, _Viewport.Height, _Viewport.Width); bla27.Position = new Vector2(FirstBriquePositionX + (2 * EspacementHorizontal) + (Brique.C_DEFAULT_BRIQUE_WIDTH / 2) + 1, 46); Briques.Add(bla27); Brique bla28 = new Brique(BriqueLevel.Incassable, _Viewport.Height, _Viewport.Width); bla28.Position = new Vector2(FirstBriquePositionX + EspacementHorizontal + (Brique.C_DEFAULT_BRIQUE_WIDTH / 2) + 1, 46); Briques.Add(bla28); for (int i = 0; i < 10; i++) { Brique UneBrique = new Brique(BriqueLevel.Incassable, _Viewport.Height, _Viewport.Width); UneBrique.Position = new Vector2(FirstBriquePositionX + (Brique.C_DEFAULT_BRIQUE_WIDTH / 2) + 1, 46 + (i * 24)); Briques.Add(UneBrique); } for (int i = 0; i < 9; i++) { Brique UneBrique = new Brique(BriqueLevel.Pierre, _Viewport.Height, _Viewport.Width); UneBrique.Position = new Vector2(FirstBriquePositionX + EspacementHorizontal + (Brique.C_DEFAULT_BRIQUE_WIDTH / 2) + 1, 70 + (i * 24)); Briques.Add(UneBrique); } for (int i = 0; i < 5; i++) { Brique UneBrique = new Brique(BriqueLevel.Pierre, _Viewport.Height, _Viewport.Width); UneBrique.Position = new Vector2(FirstBriquePositionX + 2 * EspacementHorizontal + (Brique.C_DEFAULT_BRIQUE_WIDTH / 2) + 1, 70 + (i * 24)); Briques.Add(UneBrique); } for (int i = 0; i < 5; i++) { Brique UneBrique = new Brique(BriqueLevel.Pierre, _Viewport.Height, _Viewport.Width); UneBrique.Position = new Vector2(FirstBriquePositionX + 3 * EspacementHorizontal + (Brique.C_DEFAULT_BRIQUE_WIDTH / 2) + 1, 70 + (i * 24)); Briques.Add(UneBrique); } for (int i = 0; i < 2; i++) { Brique UneBrique = new Brique(BriqueLevel.Pierre, _Viewport.Height, _Viewport.Width); UneBrique.Position = new Vector2(FirstBriquePositionX + 4 * EspacementHorizontal + (Brique.C_DEFAULT_BRIQUE_WIDTH / 2) + 1, 70 + (i * 24)); Briques.Add(UneBrique); } Brique bla29 = new Brique(BriqueLevel.Incassable, _Viewport.Height, _Viewport.Width); bla29.Position = new Vector2(FirstBriquePositionX + EspacementHorizontal + (Brique.C_DEFAULT_BRIQUE_WIDTH / 2) + 1, 262); Briques.Add(bla29); Brique test1 = new Brique(BriqueLevel.Pierre, _Viewport.Height, _Viewport.Width); test1.Position = new Vector2(FirstBriquePositionX + (4 * EspacementHorizontal) - (Brique.C_DEFAULT_BRIQUE_WIDTH / 2) - 1, 262); Briques.Add(test1); Brique test2 = new Brique(BriqueLevel.Pierre, _Viewport.Height, _Viewport.Width); test2.Position = new Vector2(FirstBriquePositionX + (4 * EspacementHorizontal) - (Brique.C_DEFAULT_BRIQUE_WIDTH / 2) - 1, 286); Briques.Add(test2); Brique test3 = new Brique(BriqueLevel.Pierre, _Viewport.Height, _Viewport.Width); test3.Position = new Vector2(FirstBriquePositionX + (5 * EspacementHorizontal) - (Brique.C_DEFAULT_BRIQUE_WIDTH / 2) - 1, 214); Briques.Add(test3); Brique test4 = new Brique(BriqueLevel.Pierre, _Viewport.Height, _Viewport.Width); test4.Position = new Vector2(FirstBriquePositionX + (5 * EspacementHorizontal) - (Brique.C_DEFAULT_BRIQUE_WIDTH / 2) - 1, 238); Briques.Add(test4); Brique test5 = new Brique(BriqueLevel.Pierre, _Viewport.Height, _Viewport.Width); test5.Position = new Vector2(FirstBriquePositionX + (6 * EspacementHorizontal) - (Brique.C_DEFAULT_BRIQUE_WIDTH / 2) - 1, 166); Briques.Add(test5); Brique test6 = new Brique(BriqueLevel.Pierre, _Viewport.Height, _Viewport.Width); test6.Position = new Vector2(FirstBriquePositionX + (6 * EspacementHorizontal) - (Brique.C_DEFAULT_BRIQUE_WIDTH / 2) - 1, 142); Briques.Add(test6); } }
protected override void Draw(GameTime gameTime) { GraphicsDevice.Clear(Color.Black); // CornflowerBlue spriteBatch.Begin(); switch (_currentGameState) { case GameState.MainMenu: // Affichage du fond d'écran du menu spriteBatch.Draw(_menuBackground, new Rectangle(0, 0, screenWidth, screenHeight), Color.White); // Affichage du titre du Jeu String title = "Casse Brique"; Vector2 titleSize = _titleFont.MeasureString(title); Vector2 titlePosition = new Vector2(_windowSize.X / 2 - titleSize.X / 2, 20); spriteBatch.DrawString(_titleFont, title, titlePosition, Color.White); // Affichage des boutons spriteBatch.Draw(_play.Texture, _play.Rectangle, _play.Color); spriteBatch.Draw(_options.Texture, _options.Rectangle, _options.Color); spriteBatch.Draw(_exit.Texture, _exit.Rectangle, _exit.Color); break; case GameState.Options: // Affichage du fond d'écran du menu spriteBatch.Draw(_menuBackground, new Rectangle(0, 0, screenWidth, screenHeight), Color.White); // Affichage du titre du menu String menuTitle = "Options"; Vector2 menuTitleSize = _titleFont.MeasureString(menuTitle); Vector2 menuTitlePosition = new Vector2(_windowSize.X / 2 - menuTitleSize.X / 2, 20); spriteBatch.DrawString(_titleFont, menuTitle, menuTitlePosition, Color.White); this.DrawString("Appuyez sur \"Echap\" pour revenir au menu", _globalFont, new Vector2(_windowSize.X / 2, _windowSize.Y - 40), Color.Black); break; case GameState.Playing: // Affichage du fond d'écran spriteBatch.Draw(_background, _mainFrame, Color.White); // On dessine ensuite le score en calculant au préalable la position où le placer. Vector2 scoreSize = _scoreFont.MeasureString("Score : " + _score.ToString()); Vector2 scorePosition = new Vector2(_windowSize.X - scoreSize.X - 10, _windowSize.Y - _coeurTexture.Height - 10 - scoreSize.Y); spriteBatch.DrawString(_scoreFont, "Score : " + _score.ToString(), scorePosition, Color.White); // Affichage du mur de briques for (int x = 0; x < NB_LIGNE_BRIQUE; x++) { for (int y = 0; y < NB_COLONNE_BRIQUE; y++) { Brique brique = _briques[x, y]; if (!brique.Touched) { spriteBatch.Draw(_briqueTextures[brique.Color], brique.Position, null, Color.White, 0f, Vector2.Zero, _briqueScale, SpriteEffects.None, 0f); } } } // Dessin des vies restantes : int xCoeur = (int)_windowSize.X - _coeurTexture.Width - 10; for (int i = 0; i < _nbBalles; i++) { spriteBatch.Draw(_coeurTexture, new Rectangle(xCoeur, (int)_windowSize.Y - _coeurTexture.Height - 10, _coeurTexture.Width, _coeurTexture.Height), Color.White); xCoeur -= 10 + _coeurTexture.Width; } // Game Over if (_nbBalles == 0) { this.DrawString("Game Over", _titleFont, new Vector2(_windowSize.X / 2, _windowSize.Y / 2), Color.Red); this.DrawString("Appuyez sur \"Echap\" pour revenir au menu", _globalFont, new Vector2(_windowSize.X / 2, _windowSize.Y / 2 + 50), Color.Black); } // Partie Gagnée else if (_nbBriques == 0) { this.DrawString("Niveau terminé", _titleFont, new Vector2(_windowSize.X / 2, _windowSize.Y / 2), Color.Green); this.DrawString("Appuyez sur \"Echap\" pour revenir au menu", _globalFont, new Vector2(_windowSize.X / 2, _windowSize.Y / 2 + 50), Color.Black); } break; } spriteBatch.End(); base.Draw(gameTime); }
public override void Update(GameTime gameTime) { MouseState current_mouse = Mouse.GetState(); if (current_mouse.LeftButton == ButtonState.Pressed) { start = true; } if (!start) { position.X = (int)raquette.position.X; position.Y = (int)raquette.position.Y - texture2D.Height; } else { if (position.X < 0 || position.X > 800 - texture2D.Width) { changeDirectionX(); } if (position.Y < 0 || position.Y > 600 - texture2D.Height) { changeDirectionY(); } if ((raquette.position.X < position.X + texture2D.Width && position.X < raquette.position.X + raquette.texture2D.Width) && ((position.Y + texture2D.Height == raquette.position.Y) && (vitesseY > 0))) { changeDirectionY(); } for (int i = 0; i < murDeBriques.nbBriques; i++) { Brique b = murDeBriques.briques[i]; if (b.position.X < position.X + texture2D.Width && position.X < b.position.X + b.texture2D.Width) { if ((position.Y + texture2D.Height == b.position.Y) && (vitesseY > 0)) { changeDirectionY(); this.Game.Components.Remove(b); b.position.X = -500; b.position.Y = -500; } if ((position.Y == b.position.Y + b.texture2D.Height) && (vitesseY < 0)) { changeDirectionY(); this.Game.Components.Remove(b); b.position.X = -500; b.position.Y = -500; } } Rectangle temp = Rectangle.Intersect(get_rectangle(), b.get_rectangle()); if (temp.Width > 0) { changeDirectionX(); this.Game.Components.Remove(b); b.position.X = -500; b.position.Y = -500; } } position.X += vitesseX; position.Y += vitesseY; } base.Update(gameTime); }
public void Initialize(int screenHeight, Brique BriqueConteneur) { _screenHeight = screenHeight; Speed = 0.2f; Direction = new Vector2(0, 1); Position = new Vector2((BriqueConteneur.Position.X + (BriqueConteneur.Texture.Width / 2)) - (Texture.Width / 2), (BriqueConteneur.Position.Y + (Texture.Height / 2)) - (Texture.Height / 2)); }