public void PlayMainTrackLoopOnIntroLayer() { CustomAudioTrack fcMain = new CustomAudioTrack(BackgroundMusic, 90.35f, PlayMainTrackOnMainLayer); IntroLayer.AddToQueue(fcMain); }
public void Load() { // Music testing CodeVariant = 3; if (CodeVariant == 1) { BackgroundMusicIntro = Engine.AssetLoader.Get <AudioAsset>("Audio/Frozen Cave Intro.wav"); BackgroundMusic = Engine.AssetLoader.Get <AudioAsset>("Audio/Frozen Cave 12.wav"); IntroLayer = Engine.Host.Audio.CreateLayer("Audio/Intro layer", 1); CustomAudioTrack fcIntro = new CustomAudioTrack(BackgroundMusicIntro, 11.29f, PlayMainTrackOnMainLayer); IntroLayer.AddToQueue(fcIntro); MainLayer = Engine.Host.Audio.CreateLayer("Main layer", 1); } else if (CodeVariant == 2) { //BackgroundMusicIntro = Engine.AssetLoader.Get<AudioAsset>("Frozen Cave Intro 2.wav"); //BackgroundMusic = Engine.AssetLoader.Get<AudioAsset>("Frozen Cave 12.wav"); BackgroundMusicIntro = Engine.AssetLoader.Get <AudioAsset>("Audio/Frozen Cave Intro 4.wav"); BackgroundMusic = Engine.AssetLoader.Get <AudioAsset>("Audio/Frozen Cave Loop 3.wav"); SecondaryLayer = Engine.Host.Audio.CreateLayer("Secondary layer", 1); SecondaryLayer.AddToQueue(BackgroundMusicIntro); SecondaryLayer.AddToQueue(BackgroundMusic); } // Texture loading should be done before any texture usages // to make sure they are loaded in parallel TextureLoader.Load(LoadedRoom.Textures); // Init the player Player = new Midori(LoadedRoom.Spawn); Units.Add(Player); // Init the camera Engine.Renderer.Camera = new ScalableArtCamera(new Vector3(Player.X, 540, 0), 1f); // Set the TextureArrayLimit to 1 for GPU's that support only zero indexing // Engine.Renderer.TextureArrayLimit = 1; // Create units foreach (ConfigUnit configUnit in LoadedRoom.Units) { Unit unit; switch (configUnit.Type) { case "Shishi": unit = new Shishi(configUnit.Name, configUnit.TextureName, configUnit.Position, configUnit.Size); break; default: throw new Exception("No applicable classes"); } Units.Add(unit); NonPlayerUnits.Add(unit); } // Magic Flows MagicFlow m = new MagicFlow(); m.AddSegment(new Collision.LineSegment(100, 5400, 950, 4600)); m.AddSegment(new Collision.LineSegment(950, 4600, 1450, 4800)); m.AddSegment(new Collision.LineSegment(1450, 4800, 2000, 4200)); MagicFlows.Add(m); m = new MagicFlow(); m.AddSegment(new Collision.LineSegment(1450, 5400, 1750, 5300)); m.AddSegment(new Collision.LineSegment(1750, 5300, 1950, 5200)); m.AddSegment(new Collision.LineSegment(1950, 5200, 2050, 5100)); m.AddSegment(new Collision.LineSegment(2050, 5100, 2100, 5000)); m.AddSegment(new Collision.LineSegment(2100, 5000, 2100, 4900)); m.AddSegment(new Collision.LineSegment(2100, 4900, 2050, 4800)); m.AddSegment(new Collision.LineSegment(2050, 4800, 1950, 4700)); m.AddSegment(new Collision.LineSegment(1950, 4700, 1750, 4600)); MagicFlows.Add(m); // Create platforms for (int i = 0; i < LoadedRoom.CollisionPlatforms.Count; i++) { ConfigCollisionPlatform configPlatform = LoadedRoom.CollisionPlatforms[i]; Collision.LineSegment realPlatform = new Collision.LineSegment(configPlatform.PointA, configPlatform.PointB); if (realPlatform.IsSloped) { SlopedCollisionPlatforms.Add(realPlatform); } else { AxisAlignedCollisionPlatforms.Add(realPlatform); } CollisionPlatforms.Add(realPlatform); } // Create decorations // Backgrounds for (int i = 0; i < LoadedRoom.Backgrounds.Count; i++) { ConfigDecoration configDecor = LoadedRoom.Backgrounds[i]; Backgrounds.Add( new Decoration( configDecor.Name, configDecor.TextureName, configDecor.Size, configDecor.Position, configDecor.DisplaySize, configDecor.TextureArea, configDecor.FlipX, configDecor.BlurIntensity, configDecor.ShadowReverseIntensity ) ); } // Background Decorations for (int i = 0; i < LoadedRoom.BackgroundDecorations.Count; i++) { ConfigDecoration configDecor = LoadedRoom.BackgroundDecorations[i]; BackgroundDecorations.Add( new Decoration( configDecor.Name, configDecor.TextureName, configDecor.Size, configDecor.Position, configDecor.DisplaySize, configDecor.TextureArea, configDecor.FlipX, configDecor.BlurIntensity, configDecor.ShadowReverseIntensity ) ); } // Foreground Decorations for (int i = 0; i < LoadedRoom.ForegroundDecorations.Count; i++) { ConfigDecoration configDecor = LoadedRoom.ForegroundDecorations[i]; ForegroundDecorations.Add( new Decoration( configDecor.Name, configDecor.TextureName, configDecor.Size, configDecor.Position, configDecor.DisplaySize, configDecor.TextureArea, configDecor.FlipX, configDecor.BlurIntensity, configDecor.ShadowReverseIntensity ) ); } for (int i = 0; i < LoadedRoom.SceneChangers.Count; i++) { SceneChanger sceneChanger = LoadedRoom.SceneChangers[i]; SceneChangers.Add(sceneChanger); } }