public void OnGraphicsDeviceCreated(GraphicsDeviceCreated message) { var content = ((ContentSystem)Manager.GetSystem(ContentSystem.TypeId)).Content; if (_renderer == null) { _renderer = new SpriteBatchRenderer { GraphicsDeviceService = message.Graphics }; } _renderer.LoadContent(content); foreach (var component in Components) { foreach (var effect in component.Effects) { if (effect.Effect == null) { effect.Effect = content.Load <ParticleEffect>(effect.AssetName).DeepCopy(); effect.Effect.LoadContent(content); effect.Effect.Initialise(); } else { effect.Effect.LoadContent(content); } } } foreach (var effect in _effects) { effect.Value.LoadContent(content); } }
private void LoadContent() { if (_renderer == null) { return; } if (string.IsNullOrWhiteSpace(_assetName)) { return; } try { _renderer.LoadContent(_content); _effect = _content.Load <ParticleEffect>(_assetName); if (_timer == null) { _timer = new Timer { Interval = 1000 / 30 }; _timer.Tick += TimerOnTick; } _timer.Enabled = true; } catch { } }
/// <summary> /// Instantiates the renderer. /// </summary> private Renderer InstantiateRenderer() { Trace.WriteLine("Instantiating particle renderer...", "CORE"); Renderer renderer = new SpriteBatchRenderer { GraphicsDeviceService = GraphicsDeviceService.Instance }; renderer.LoadContent(null); return(renderer); }
public GameEnvironment(Controller ctrl) : base(ctrl) { Pressure = 0.0f; Sound.StopAll(true); // Camera. Camera = new Camera2D(this); //Camera.Position = new Vector2(1280.0f, k_idealScreenSize.Y * 0.5f); Camera.MoveSpeed = defaultCameraMoveSpeed; Camera.ResetEffectScale(1.0f); // Set at slightly higher than 1.0 so we can do a zoom out pressure effect. // Window. Controller.Window.ClientSizeChanged += WindowSizeChanged; WindowSizeChanged(null, null); Controller.IsMouseVisible = true; // Collision. CollisionWorld = new Physics.Dynamics.World(Vector2.Zero); // Create a new SpriteBatch which can be used to draw textures. m_spriteBatch = new SpriteBatch(ctrl.GraphicsDevice); ParticleRenderer = new SpriteBatchRenderer { GraphicsDeviceService = ctrl.Graphics }; ParticleRenderer.LoadContent(contentManager); // Create collision notification callbacks. CollisionWorld.ContactManager.PreSolve += PreSolve; CollisionWorld.ContactManager.BeginContact += BeginContact; CollisionWorld.ContactManager.EndContact += EndContact; CollisionWorld.ContactManager.ContactFilter += ContactFilter; // HUD. HUD = new Menus.HUD(this); // Effects. m_tintEffect = contentManager.Load <Effect>("TintEffect"); FadeOut = new FaderOuter(this); SpawnController = new SpawnController(this); // Farseer freaks out unless we call Update here when changing Environments. FIXME: Why? Update(0.0f); }
public Pax4ParticleEffect() { _current = this; if (_particleRenderer == null) { _particleRenderer = new SpriteBatchRenderer { GraphicsDeviceService = Pax4Game._graphicsDeviceManager }; _particleRenderer.LoadContent(Pax4Game._current.Content); _particleRenderer3 = new QuadRenderer(10000) { GraphicsDeviceService = Pax4Game._graphicsDeviceManager }; _particleRenderer3.LoadContent(Pax4Game._current.Content); } ParticleEffect particleEffect = null; Texture2D particleTexture = null; AbstractEmitter emitter = null; float scale = 1.0f; if (Pax4Camera._backBufferWidth <= 320) { scale = Pax4Camera._current._scale.X * 0.9f; } else { scale = Pax4Camera._current._scale.X; } int budgetFactor = 3; #region Default //**************************** //Default //**************************** budgetFactor = 3; particleEffect = new ParticleEffect(); Pax4Texture2D._current.Load("ParticleEffect/FlowerBurst"); particleTexture = Pax4Texture2D._current.Get("ParticleEffect/FlowerBurst"); emitter = new PointEmitter { Budget = 64 * budgetFactor, Term = 1.0f, ReleaseQuantity = 5, Enabled = true, ReleaseSpeed = new Range(0.0f, 50.0f), // { Value = 25f, Variation = 25f }, ReleaseColour = new ColourRange { Red = new Range(0.0f, 0.8f), Green = new Range(0.0f, 1.0f), Blue = new Range(0.0f, 1.0f) }, ReleaseOpacity = new Range(1.0f, 1.0f), ReleaseScale = new Range(16.0f * scale, 48.0f * scale), // { Value = 32f, Variation = 16f }, //ReleaseRotation //ReleaseImpulse ParticleTexture = particleTexture, Modifiers = new ModifierCollection { new OpacityFastFadeModifier { InitialOpacity = 1.0f } }, BlendMode = EmitterBlendMode.Add, Controllers = new ControllerPipeline { new TriggerOffsetController { TriggerOffset = Vector3.Zero }, //new TriggerRotationController //{ // TriggerRotation = Vector3.Zero //} }, //TriggerOffset //MinimumTriggerPeriod }; emitter.Initialise(); particleEffect.Emitters.Add(emitter); _particleEffectDefault = particleEffect; AddUpdate(particleEffect); AddDraw(particleEffect); #endregion //Default #region IceStarTrail //**************************** //IceStarTrail //**************************** budgetFactor = 1; particleEffect = new ParticleEffect(); Pax4Texture2D._current.Load("ParticleEffect/Star"); particleTexture = Pax4Texture2D._current.Get("ParticleEffect/Star"); emitter = new PointEmitter//Sparkles { Budget = 42 * budgetFactor, Term = 0.5f, ReleaseQuantity = 1, Enabled = true, ReleaseSpeed = new Range(32.0f, 160.0f), ReleaseColour = new ColourRange { Red = new Range(1.0f, 1.0f), Green = new Range(1.0f, 1.0f), Blue = new Range(1.0f, 1.0f) }, ReleaseOpacity = new Range(1.0f, 1.0f), ReleaseScale = new Range(16.0f * scale, 16.0f * scale), ReleaseRotation = new RotationRange { Yaw = new Range(0.0f, 0.0f), Pitch = new Range(0.0f, 0.0f), Roll = new Range(0.0f, 6.28f), }, //ReleaseImpulse ParticleTexture = particleTexture, Modifiers = new ModifierCollection { new OpacityInterpolator3 { InitialOpacity = 0.0f, MedianOpacity = 1.0f, Median = 0.75f, FinalOpacity = 0.0f }, new DampingModifier { DampingCoefficient = 3.0f }, new ColourInterpolator2 { InitialColour = new Vector3(0.7529412f, 0.7529412f, 1.0f), FinalColour = new Vector3(0.7529412f, 1.0f, 1.0f) }, new LinearGravityModifier { GravityVector = new Vector3(0.0f, 1.0f, 0.0f), Strength = 150.0f } }, BlendMode = EmitterBlendMode.Add, Controllers = new ControllerPipeline { new TriggerOffsetController { TriggerOffset = Vector3.Zero }, //new TriggerRotationController //{ // TriggerRotation = Vector3.Zero //} }, //TriggerOffset //MinimumTriggerPeriod }; emitter.Initialise(); particleEffect.Emitters.Add(emitter); particleTexture = Pax4Texture2D._current.Get("ParticleEffect/Star"); emitter = new PointEmitter//Flakes { Budget = 42 * budgetFactor, Term = 0.5f, ReleaseQuantity = 1, Enabled = true, ReleaseSpeed = new Range(0.0f, 48.0f), ReleaseColour = new ColourRange { Red = new Range(1.0f, 1.0f), Green = new Range(1.0f, 1.0f), Blue = new Range(1.0f, 1.0f) }, ReleaseOpacity = new Range(1.0f, 1.0f), ReleaseScale = new Range(8.0f * scale, 24.0f * scale), ReleaseRotation = new RotationRange { Yaw = new Range(0.0f, 0.0f), Pitch = new Range(0.0f, 0.0f), Roll = new Range(0.0f, 3.14f), }, //ReleaseImpulse ParticleTexture = particleTexture, Modifiers = new ModifierCollection { new ColourInterpolator2 { InitialColour = new Vector3(0.7529412f, 0.7529412f, 1.0f), FinalColour = new Vector3(0.7529412f, 1.0f, 1.0f) }, new OpacityInterpolator2 { InitialOpacity = 1.0f, FinalOpacity = 0.0f }, }, BlendMode = EmitterBlendMode.Add, Controllers = new ControllerPipeline { new TriggerOffsetController { TriggerOffset = Vector3.Zero }, //new TriggerRotationController //{ // TriggerRotation = Vector3.Zero //} }, //TriggerOffset //MinimumTriggerPeriod }; emitter.Initialise(); particleEffect.Emitters.Add(emitter); _particleEffectIceStarTrail = particleEffect; AddUpdate(particleEffect); AddDraw(particleEffect); #endregion //IceStarTrail #region ChainLinkBreak //**************************** //ChainLinkBreak //**************************** budgetFactor = 5; particleEffect = new ParticleEffect(); Pax4Texture2D._current.Load("ParticleEffect/Particle005"); particleTexture = Pax4Texture2D._current.Get("ParticleEffect/Particle005"); emitter = new PointEmitter//Sparks { Budget = 20 * budgetFactor, Term = 0.75f, ReleaseQuantity = 20, Enabled = true, ReleaseSpeed = new Range(0.0f, 250.0f), ReleaseColour = new ColourRange { Red = new Range(1.0f, 1.0f), Green = new Range(1.0f, 1.0f), Blue = new Range(1.0f, 1.0f) }, ReleaseOpacity = new Range(1.0f, 1.0f), ReleaseScale = new Range(0.0f * scale, 8.0f * scale), //ReleaseRotation, //ReleaseImpulse, ParticleTexture = particleTexture, Modifiers = new ModifierCollection { new OpacityInterpolator2 { InitialOpacity = 1.0f, FinalOpacity = 0.0f }, new DampingModifier { DampingCoefficient = 2.0f }, new LinearGravityModifier { GravityVector = new Vector3(0.0f, 1.0f, 0.0f), Strength = 1000.0f } }, BlendMode = EmitterBlendMode.Add, Controllers = new ControllerPipeline { new TriggerOffsetController { TriggerOffset = Vector3.Zero }, //new TriggerRotationController //{ // TriggerRotation = Vector3.Zero //} }, //TriggerOffset //MinimumTriggerPeriod }; emitter.Initialise(); particleEffect.Emitters.Add(emitter); particleTexture = Pax4Texture2D._current.Get("ParticleEffect/Particle005"); emitter = new PointEmitter//Flash { Budget = 1 * budgetFactor, Term = 0.1f, ReleaseQuantity = 1, Enabled = true, ReleaseSpeed = new Range(50.0f, 50.0f), ReleaseColour = new ColourRange { Red = new Range(1.0f, 1.0f), Green = new Range(1.0f, 1.0f), Blue = new Range(1.0f, 1.0f) }, ReleaseOpacity = new Range(0.0f, 0.5f), ReleaseScale = new Range(100.0f * scale, 100.0f * scale), //ReleaseRotation, //ReleaseImpulse, ParticleTexture = particleTexture, Modifiers = new ModifierCollection { new OpacityInterpolator2 { InitialOpacity = 1.0f, FinalOpacity = 0.0f } }, BlendMode = EmitterBlendMode.Add, Controllers = new ControllerPipeline { new TriggerOffsetController { TriggerOffset = Vector3.Zero }, //new TriggerRotationController //{ // TriggerRotation = Vector3.Zero //} }, //TriggerOffset //MinimumTriggerPeriod }; emitter.Initialise(); particleEffect.Emitters.Add(emitter); _particleEffectChainLinkBreak = particleEffect; //_particleEffectPart.Add(_particleEffectChainLinkBreak); #endregion //ChainLinkBreak }