public override void Fire(float fireAngle, GameTime gameTime) { if (gameTime.TotalRealTime.TotalSeconds < _previousShot + _fireRate) return; _previousShot = gameTime.TotalRealTime.TotalSeconds; Vector2 fireVector = Vector2Helper.FindVectorToAngle(fireAngle); Vector2 bulletPosition = new Vector2(Owner.Position.X + (fireVector.X * 6f), Owner.Position.Y + (fireVector.Y * 6f)); Bullet newBullet = new Bullet(GameScreen, this, gameTime.TotalRealTime.TotalSeconds, 1d) { Position2D = bulletPosition, Velocity = fireVector * 1.1f, ReferenceCamera = GameScreen.Camera1, ObjectModel = GameScreen.BulletModel }; this.FiredAmmo.Add(newBullet); GameScreen.Collisions.Collidables.Add(newBullet); GameScreen.ObjectsToBeWrapped.Add(newBullet); GameScreen.Level.Pieces.Add(newBullet); }
public void Update(GameTime gameTime) { if (_keyboard.IsKeyDown(Keys.Left)) _v2dPosition.X -= 5; if (_keyboard.IsKeyDown(Keys.Right)) _v2dPosition.X += 5; if (_keyboard.IsKeyDown(Keys.Up)) _v2dPosition.Y -= 5; if (_keyboard.IsKeyDown(Keys.Down)) _v2dPosition.Y += 5; #region Bullet Update if (_keyboard.IsKeyDown(Keys.Space)) { _bullet = new Bullet(_txBulletTexture); _bullet.Position = new Vector2( _v2dPosition.X + _txShipTexture.Width / 2 - _txBulletTexture.Width / 2, _v2dPosition.Y - _txShipTexture.Height / 2); _bulletList.Add(_bullet); } foreach (Bullet ShipBullet in _bulletList) { ShipBullet.Update(gameTime); } #endregion Bullet Update }
public void ShootBullet() { Vector2 bulletPosition = new Vector2(this.Position.X, this.Position.Y); Bullet newBullet = new Bullet(GameScreen) { Position2D = bulletPosition, ObjectModel = MoritoFighterGame.MoritoFighterGameInstance.BulletModel }; this.BulletList.Add(newBullet); }