protected override void Initialize() { Raquette raquette; Hud hud; MurDeBriques mu; hud = new Hud(this, "score", new Vector2(10, 10)); this.Components.Add(hud); raquette = new Raquette(this, "Textures/whiteSquare"); this.Components.Add(raquette); mu = new MurDeBriques(this); this.Components.Add(mu); Balle balle1 = new Balle(raquette, this, "Textures/ball", mu); balles.Add(balle1); this.Components.Add(balle1); base.Initialize(); this._graphics.IsFullScreen = false; this._graphics.PreferredBackBufferWidth = 800; this._graphics.PreferredBackBufferHeight = 600; this._graphics.ApplyChanges(); }
protected override void Initialize() { // Screen stuff graphics.PreferredBackBufferWidth = screenWidth; graphics.PreferredBackBufferHeight = screenHeight; graphics.ApplyChanges(); _windowSize.X = this.graphics.PreferredBackBufferWidth; _windowSize.Y = this.graphics.PreferredBackBufferHeight; _mainFrame = new Rectangle(0, 0, (int)GraphicsDevice.Viewport.Width, (int)GraphicsDevice.Viewport.Height); //_windowSize.X, _windowSize.Y _menu = new Menu(this, _windowSize); _nbBalles = 3; _score = 0; _balle = new Balle(this, _windowSize); _raquette = new Raquette(this, _windowSize); // Affichage de la souris sur l'écran de menu IsMouseVisible = true; base.Initialize(); }
public void Update(Microsoft.Xna.Framework.GameTime gameTime, Balle _Balle, Raquette _Raquette) { if (_Vie != BriqueLevel.Morte) { if (_Raquette.ListeBonus.ContainsKey(BonusType.PowerBall)) { _Balle.PowerBall = true; } else { _Balle.PowerBall = false; } bool InvertX = false; bool InvertY = false; bool Collision = false; //Colision Balle Venant du haut et de gauche if (_Balle.Direction.Y > 0 && _Balle.Direction.X > 0) { InvertX = false; InvertY = false; Collision = false; //Colision a gauche if(CollisionRectangleGauche.Contains((int)_Balle.CenterPositionX, (int)_Balle.CenterPositionY)) { Collision = true; InvertX = true; } //Colision en haut if (CollisionRectangleHaut.Contains((int)_Balle.CenterPositionX, (int)_Balle.CenterPositionY)) { Collision = true; InvertY = true; } if (!Collision && CollisionRectangleHautGauche.Contains((int)_Balle.CenterPositionX, (int)_Balle.CenterPositionY)) { if ((Position.X - _Balle.CenterPositionX) < (Position.Y - _Balle.CenterPositionY)) //Balle plus proche du rectangle du haut { Collision = true; InvertY = true; } else //Balle plus proche du rectangle du côté { Collision = true; InvertX = true; } } } //Collision Balle venant du haut et de droite else if (_Balle.Direction.Y > 0 && _Balle.Direction.X < 0) { InvertX = false; InvertY = false; Collision = false; //Colision a droite if (CollisionRectangleDroite.Contains((int)_Balle.CenterPositionX, (int)_Balle.CenterPositionY)) { Collision = true; InvertX = true; } //Colision en haut if (CollisionRectangleHaut.Contains((int)_Balle.CenterPositionX, (int)_Balle.CenterPositionY)) { Collision = true; InvertY = true; } if (!Collision && CollisionRectangleHautDroit.Contains((int)_Balle.CenterPositionX, (int)_Balle.CenterPositionY)) { if ((_Balle.CenterPositionX - (Position.X + C_DEFAULT_BRIQUE_WIDTH)) < (Position.Y - _Balle.CenterPositionY)) //Balle plus proche du rectangle du haut { Collision = true; InvertY = true; } else //Balle plus proche du rectangle du côté { Collision = true; InvertX = true; } } } //Collision Balle venant du bas et de droite else if (_Balle.Direction.Y < 0 && _Balle.Direction.X < 0) { InvertX = false; InvertY = false; Collision = false; //Colision a droite if (CollisionRectangleDroite.Contains((int)_Balle.CenterPositionX, (int)_Balle.CenterPositionY)) { Collision = true; InvertX = true; } //Colision en bas if (CollisionRectangleBas.Contains((int)_Balle.CenterPositionX, (int)_Balle.CenterPositionY)) { Collision = true; InvertY = true; } if (!Collision && CollisionRectangleBasDroit.Contains((int)_Balle.CenterPositionX, (int)_Balle.CenterPositionY)) { if ((_Balle.CenterPositionX - (Position.X + C_DEFAULT_BRIQUE_WIDTH)) < (_Balle.CenterPositionY - (Position.Y + C_DEFAULT_BRIQUE_HEIGHT))) //Balle plus proche du rectangle du bas { Collision = true; InvertY = true; } else //Balle plus proche du rectangle du côté { Collision = true; InvertX = true; } } } //Collision Balle venant du bas et de Gauche else if (_Balle.Direction.Y < 0 && _Balle.Direction.X > 0) { InvertX = false; InvertY = false; Collision = false; //Colision a gauche if (CollisionRectangleGauche.Contains((int)_Balle.CenterPositionX, (int)_Balle.CenterPositionY)) { Collision = true; InvertX = true; } //Colision en bas if (CollisionRectangleBas.Contains((int)_Balle.CenterPositionX, (int)_Balle.CenterPositionY)) { Collision = true; InvertY = true; } if (!Collision && CollisionRectangleBasGauche.Contains((int)_Balle.CenterPositionX, (int)_Balle.CenterPositionY)) { if ((Position.X - _Balle.CenterPositionX) < (_Balle.CenterPositionY - (Position.Y + C_DEFAULT_BRIQUE_HEIGHT))) //Balle plus proche du rectangle du bas { Collision = true; InvertY = true; } else //Balle plus proche du rectangle du côté { Collision = true; InvertX = true; } } } if (Collision) { if (_Raquette.ListeBonus.ContainsKey(BonusType.PowerBall)) { _Vie = BriqueLevel.Morte; } else { if (_Vie != BriqueLevel.Incassable) { _Vie--; } _Balle.ToucheBrique(InvertX, InvertY); } _Raquette.UpdateScore(100); if (_VieOriginelle > _Vie) { MustReloadContent = true; } } foreach (Bullets Bullet in _Raquette.ListeBullets) { if (CollisionRectangleBrique.Intersects(Bullet.CollisionRectangle)) { if (_Vie != BriqueLevel.Incassable) { _Vie--; } Bullet.isObsolete = true; _Raquette.UpdateScore(100); if (_VieOriginelle > _Vie) { MustReloadContent = true; } } } if (_Vie == BriqueLevel.Morte) { _Raquette.UpdateScore(500); } } else { if (!_BonusEventuel.isObsolete) { _BonusEventuel.Update(gameTime, _Raquette); } } }
/// <summary> /// Update de chaque brique /// </summary> /// <param name="gameTime"></param> /// <param name="_Balle"></param> /// <param name="_Raquette"></param> public void Update(GameTime gameTime, Balle _Balle, Raquette _Raquette) { List<Brique> BriquesToDelete = new List<Brique>(); foreach (Brique b in Briques) { b.Update(gameTime, _Balle, _Raquette); if (b.Vie == BriqueLevel.Morte && b.BonusEventuel.isObsolete) // On ne supprime la référence de la brique que lorsque que son bonus est également devenu inutile { BriquesToDelete.Add(b); } } foreach (Brique b in BriquesToDelete) { Briques.Remove(b); } List<Bullets> BulletsToDelete = new List<Bullets>(); foreach (Bullets Bullet in _Raquette.ListeBullets) { Bullet.Update(gameTime); if (Bullet.isObsolete) { BulletsToDelete.Add(Bullet); } } foreach (Bullets Bullet in BulletsToDelete) { _Raquette.ListeBullets.Remove(Bullet); } }
/// <summary> /// Allows the game to perform any initialization it needs to before starting to run. /// This is where it can query for any required services and load any non-graphic /// related content. Calling base.Initialize will enumerate through any components /// and initialize them as well. /// </summary> protected override void Initialize() { GameViewport = new Viewport(8, 8, 484, 592); InfosViewport = new Viewport(510, 30, 170, 592); _Infos = new Infos(InfosViewport); _Raquette = new Raquette(GameViewport); _Raquette.Initialize(); _Balle = new Balle(GameViewport); _Balle.Initialize(); _Monde = new Monde(GameViewport); _Monde.Initialize(); _Menu = new Menu(Window.ClientBounds.Width, Window.ClientBounds.Height); _Menu.OnBoutonSelected += new EventHandler(_Menu_OnBoutonSelected); base.Initialize(); }