Example #1
0
        public override void Draw(DrawingContext context, IList <IDrawableObject> drawables)
        {
            if (content == null)
            {
                return;
            }

            //if (this.Viewport == BoundingRectangle.Empty)
            if (!this.Viewport.Equals(context.GraphicsDevice.Viewport.TitleSafeArea))
            {
                this.Viewport = (BoundingRectangle)context.GraphicsDevice.Viewport.TitleSafeArea;
            }

            Messure();

            if (Renderer == null)
            {
                Renderer = new SpriteBatchRenderer(context.GraphicsDevice);
            }

            Renderer.elapsedTime = context.ElapsedTime;
            Renderer.Begin(context);
            content[0].Render(Renderer);
            Renderer.End(context);
        }
Example #2
0
        public override void Draw(DrawingContext context, System.Collections.Generic.IList <IDrawableObject> drawables)
        {
            if (this.Viewport == BoundingRectangle.Empty) // Should this be set?
            {
                this.Viewport = (BoundingRectangle)context.GraphicsDevice.Viewport.TitleSafeArea;
            }

            windowBorder.Measure(new Vector2(Viewport.Width, Viewport.Height));
            windowBorder.Arrange(Viewport);

            BoundingRectangle titleBounds = new BoundingRectangle
            {
                X      = Viewport.X,
                Y      = Viewport.Y,
                Width  = Viewport.Width,
                Height = windowBorder.BorderThickness.Top,
            };

            title.Measure(new Vector2(titleBounds.Width, windowBorder.BorderThickness.Top));
            title.Arrange(titleBounds);

            if (Renderer == null)
            {
                Renderer = new SpriteBatchRenderer(context.GraphicsDevice);
            }

            Renderer.elapsedTime = context.ElapsedTime;
            Renderer.Begin(context);
            windowBorder.Render(Renderer);
            title.Render(Renderer);
            //DebugDraw();
            Renderer.End(context);
        }
Example #3
0
        public override void Initialize()
        {
            Renderer = new SpriteBatchRenderer {
                BlendMode = SpriteBlendMode.Additive, Batch = CurrGame.SpriteBatch
            };

            //TowerSelector = CurrGame.Content.Load<RectEmitter>("GUI/TowerSelector");
            TowerSelector = new RectEmitter
            {
                ReleaseColour   = Color.Lime.ToVector3(),
                ReleaseOpacity  = 1,
                ReleaseQuantity = 100,
                ReleaseScale    = new VariableFloat {
                    Anchor = 15, Variation = 1
                },
                ReleaseSpeed = new VariableFloat {
                    Anchor = 10, Variation = 5
                },
                Frame  = true,
                Height = 50,
                Width  = 50,
                Budget = 10000,
                Term   = 0.5f
            };

            TowerSelector.Initialize();
            TowerSelector.LoadContent(CurrGame.Content);
            base.Initialize();
        }
Example #4
0
        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);
            }
        }
Example #5
0
        public void OnAdded()
        {
            _texture = Texture.LoadTexture(@"C:\dev\csharp\nephilim\Nephilim.Sandbox\Resources\Sprites\God_00000.png");
            ICamera camera = new OrthoCameraComponent(Matrix4.Identity);

            SpriteBatchRenderer.Init(camera);
        }
Example #6
0
 protected override void Initialize()
 {
     if (_content == null)
     {
         _content = new PlainContentManager(Services);
     }
     if (_renderer == null)
     {
         _renderer = new SpriteBatchRenderer();
     }
     _renderer.GraphicsDeviceService = (IGraphicsDeviceService)Services.GetService(typeof(IGraphicsDeviceService));
     if (_circle == null)
     {
         try
         {
             _circle = new FilledEllipse(_content, GraphicsDeviceManager)
             {
                 Gradient = 2,
                 Color    = Color.SlateBlue * 0.5f
             };
         }
         catch (Exception ex)
         {
             Console.WriteLine("Failed initializing ellipse: " + ex);
         }
     }
     LoadContent();
 }
Example #7
0
        public Video(Engine engine)
            : base(engine)
        {
            // particle effects
            ParticleRenderer = new SpriteBatchRenderer
            {
                GraphicsDeviceService = Global.GraphicsDeviceManager
            };

            GraphicsDevice = Global.Game.GraphicsDevice;

            Engine.AddComponent(this);
        }
Example #8
0
        /// <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);
        }
Example #9
0
        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);
        }
Example #10
0
 protected override void Initialize()
 {
     if (_content == null)
     {
         _content = new PlainContentManager(Services);
     }
     if (_renderer == null)
     {
         _renderer = new SpriteBatchRenderer();
     }
     _renderer.GraphicsDeviceService = (IGraphicsDeviceService)Services.GetService(typeof(IGraphicsDeviceService));
     if (!string.IsNullOrWhiteSpace(_assetName) && _effect == null)
     {
         LoadContent();
     }
 }
Example #11
0
        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
        }
Example #12
0
 public void OnDestroy()
 {
     SpriteBatchRenderer.Dispose();
 }
Example #13
0
 public void OnRenderLayer()
 {
     SpriteBatchRenderer.BeginScene();
     SpriteBatchRenderer.DrawQuad(_texture, new Color4(1, 1, 1, 1), new Vector4(0), Matrix4.CreateScale(2f));
     SpriteBatchRenderer.EndScene();
 }
Example #14
0
        private static void InitializeDefaultCore(IGraphicsDeviceService graphicsDeviceService)
        {
            if (graphicsDeviceService == null)
                throw new ArgumentNullException("graphicsDeviceService");

            //TODO: Remove this or make a way to remove it if it is not used (ContentManager)
            ////////////////////////////////////////////////////////////////
            var services = new GameServiceContainer();
            services.AddService(typeof (IGraphicsDeviceService), graphicsDeviceService);

            //TODO: Enable the user to change the RootDirectory
            _contentManager = new ContentManager(services, "Content");
            ///////////////////////////////////////////////////

            SpriteRenderer = new SpriteBatchRenderer(Window.GraphicsDevice);
            Entities = new EntitiesManager();
            Settings = new SettingsManager();
            Input = new InputManager();
            Cameras = new CameraManager();
            Music = new MusicManager(_contentManager);
            SoundFX = new SoundFXManager(_contentManager);
            Textures = new TextureManager(_contentManager);
            Fonts = new FontsManager(_contentManager);

            InitializeManagers();
        }
Example #15
0
        public static void Initialize(
            IWindowManager windowManager,
            IInputManager inputManager,
            IResourceManager<Texture2D> textureManager,
            IResourceManager<Song> musicManager,
            IResourceManager<SoundEffect> soundFXManager,
            IResourceManager<SpriteFont> fontsManager,
            ISettingsManager settingsManager,
            ICameraManager cameraManager)
        {
            //TODO: Do not require EVERYTHING... Maybe only put the Managers setter public?

            if(windowManager == null)
                throw new ArgumentNullException("windowManager");

            if (inputManager == null)
                throw new ArgumentNullException("inputManager");

            if (textureManager == null)
                throw new ArgumentNullException("textureManager");

            if (musicManager == null)
                throw new ArgumentNullException("musicManager");

            if (soundFXManager == null)
                throw new ArgumentNullException("soundFXManager");

            if (fontsManager == null)
                throw new ArgumentNullException("fontsManager");

            if (settingsManager == null)
                throw new ArgumentNullException("settingsManager");

            if (cameraManager == null)
                throw new ArgumentNullException("cameraManager");

            Window = windowManager;
            Input = inputManager;
            Textures = textureManager;
            Music = musicManager;
            SoundFX = soundFXManager;
            Fonts = fontsManager;
            Settings = settingsManager;
            Cameras = cameraManager;

            /////////////////////
            // TODO: FOR NOW
            Entities = new EntitiesManager();
            SpriteRenderer = new SpriteBatchRenderer(Window.GraphicsDevice);
            ////////////////////

            InitializeManagers();
        }