public void FireBullet(GameTime gameTime) { double newtime = gameTime.TotalGameTime.TotalSeconds; double dt = newtime - m_lastShot; double secondsperbullet = 1.0 / m_firingRate; // valid fire (within firing rate) if (dt >= secondsperbullet) { m_lastShot = newtime; DotBullet bulletinstance = (DotBullet)BulletPool.GetAvailableBullet(); bulletinstance.Initialize(); bulletinstance.Position = spriteRef.Position; bulletinstance.Heading = pPosition - spriteRef.Position; bulletinstance.Heading.Normalize(); bulletinstance.Alive = true; } }