/// <summary> /// LoadContent will be called once per game and is the place to load /// all of your content. /// </summary> protected override void LoadContent() { // Create a new SpriteBatch, which can be used to draw textures. spriteBatch = new SpriteBatch(GraphicsDevice); // load texture and contents messageFont = this.Content.Load <SpriteFont>(MessageFontContentName); scoreFont = this.Content.Load <SpriteFont>(ScoreFontContentName); laserTexture = this.Content.Load <Texture2D>(LaserContentName); spaceshipTexture = this.Content.Load <Texture2D>(SpaceshipContentName); enemy4Texture = this.Content.Load <Texture2D>(Enemy4ContentName); explosionTexture = this.Content.Load <Texture2D>(ExplosionsContentName); backgroundTexture = this.Content.Load <Texture2D>(BackgroundContentName); starTexture = this.Content.Load <Texture2D>(ParallaxStarContentName); //bgmEffect = this.Content.Load<SoundEffect>(BgmContentName); bgmEffect = this.Content.Load <SoundEffect>(this.settings.BgmSoundEffect); explosionSoundEffect = this.Content.Load <SoundEffect>(ExplosionSoundContentName); explosionSound = explosionSoundEffect.CreateInstance(); explosionSound.Volume = 1.0F; laserSoundEffect = this.Content.Load <SoundEffect>(LaserSoundContentName); laserSound = laserSoundEffect.CreateInstance(); laserSound.Volume = 1.0F; // create sprites spaceshipSprite = new SpaceshipSprite(spaceshipTexture); backgroundSprite = new BackgroundSprite(backgroundTexture, graphics); // create sprite generators enemyGenerator = new SpriteGenerator <EnemySprite>( () => new EnemySprite(enemy4Texture, new Vector2(Utils.GetRandomNumber(1, GraphicsDevice.Viewport.Width - enemy4Texture.Width), 1), Utils.GetRandomNumber(5, 10)), enemyPool, TimeSpan.FromMilliseconds(1000.0F / settings.NumOfEnemiesPerSecond)); starGenerator = new SpriteGenerator <ParallaxStarSprite>(() => new ParallaxStarSprite(starTexture, new Vector2( Utils.GetRandomNumber(1, GraphicsDevice.Viewport.Width - starTexture.Width), 1), Utils.GetRandomNumber(5, 20)), starPool, TimeSpan.FromMilliseconds(100)); gameOverScene = new GameOverScene(this, () => !spaceshipSprite.IsActive, () => { this.enemyPool.Clear(); this.laserPool.Clear(); this.explosionPool.Clear(); this.enemyGenerator.IsActive = false; if (explosionSound != null && !explosionSound.IsDisposed) { explosionSound.Stop(true); explosionSound.Dispose(); } if (laserSound != null && !laserSound.IsDisposed) { laserSound.Stop(true); laserSound.Dispose(); } bgmEffect.Dispose(); }) { IsActive = !settings.LiveForever }; var bgm = bgmEffect.CreateInstance(); bgm.IsLooped = true; bgm.Play(); }
/// <summary> /// LoadContent will be called once per game and is the place to load /// all of your content. /// </summary> protected override void LoadContent() { // Create a new SpriteBatch, which can be used to draw textures. spriteBatch = new SpriteBatch(GraphicsDevice); // load texture and contents messageFont = this.Content.Load<SpriteFont>(MessageFontContentName); scoreFont = this.Content.Load<SpriteFont>(ScoreFontContentName); laserTexture = this.Content.Load<Texture2D>(LaserContentName); spaceshipTexture = this.Content.Load<Texture2D>(SpaceshipContentName); enemy4Texture = this.Content.Load<Texture2D>(Enemy4ContentName); explosionTexture = this.Content.Load<Texture2D>(ExplosionsContentName); backgroundTexture = this.Content.Load<Texture2D>(BackgroundContentName); starTexture = this.Content.Load<Texture2D>(ParallaxStarContentName); //bgmEffect = this.Content.Load<SoundEffect>(BgmContentName); bgmEffect = this.Content.Load<SoundEffect>(this.settings.BgmSoundEffect); explosionSoundEffect = this.Content.Load<SoundEffect>(ExplosionSoundContentName); explosionSound = explosionSoundEffect.CreateInstance(); explosionSound.Volume = 1.0F; laserSoundEffect = this.Content.Load<SoundEffect>(LaserSoundContentName); laserSound = laserSoundEffect.CreateInstance(); laserSound.Volume = 1.0F; // create sprites spaceshipSprite = new SpaceshipSprite(spaceshipTexture); backgroundSprite = new BackgroundSprite(backgroundTexture, graphics); // create sprite generators enemyGenerator = new SpriteGenerator<EnemySprite>( () => new EnemySprite(enemy4Texture, new Vector2(Utils.GetRandomNumber(1, GraphicsDevice.Viewport.Width - enemy4Texture.Width), 1), Utils.GetRandomNumber(5, 10)), enemyPool, TimeSpan.FromMilliseconds(1000.0F/settings.NumOfEnemiesPerSecond)); starGenerator = new SpriteGenerator<ParallaxStarSprite>(() => new ParallaxStarSprite(starTexture, new Vector2( Utils.GetRandomNumber(1, GraphicsDevice.Viewport.Width - starTexture.Width), 1), Utils.GetRandomNumber(5, 20)), starPool, TimeSpan.FromMilliseconds(100)); gameOverScene = new GameOverScene(this, () => !spaceshipSprite.IsActive, () => { this.enemyPool.Clear(); this.laserPool.Clear(); this.explosionPool.Clear(); this.enemyGenerator.IsActive = false; if (explosionSound != null && !explosionSound.IsDisposed) { explosionSound.Stop(true); explosionSound.Dispose(); } if (laserSound != null && !laserSound.IsDisposed) { laserSound.Stop(true); laserSound.Dispose(); } bgmEffect.Dispose(); }) {IsActive = !settings.LiveForever}; var bgm = bgmEffect.CreateInstance(); bgm.IsLooped = true; bgm.Play(); }