コード例 #1
0
ファイル: Beams.cs プロジェクト: Audectra/Extensions
        public override void OnTrigger(uint triggerId, bool risingEdge)
        {
            if (!risingEdge)
            {
                return;
            }

            switch ((TriggerId)triggerId)
            {
            case TriggerId.BeamMeUp:
                var particleConfig = new ParticleConfig
                {
                    Angle        = 0,
                    Life         = float.MaxValue,
                    Speed        = _particleSpeed,
                    Position     = new Vector2(0, 0),
                    AxisPosition = new Vector2(0, 0),
                    BeginSize    = _particleSize,
                    EndSize      = _particleSize,
                    BeginColor   = _color,
                    EndColor     = _color
                };

                _particleSystem.AddParticle(particleConfig);
                break;
            }
        }
コード例 #2
0
        protected virtual void mixupProperties()
        {
            ParticleConfig config = _config;
            double         fkt = 1;
            double         a, r, g, b;

            a = r = g = b = 0;
            // randomize a little bit
            fkt = (TimeAlive + spreadedLifetime) / ThisLifetime;
            if (fkt < 0)
            {
                fkt = 0;
            }
            if (fkt > 0.999)
            {
                fkt = 0.999;
            }
            a = config.ColorFrom.A + ((config.ColorTo.A - config.ColorFrom.A) * fkt);
            r = config.ColorFrom.R + ((config.ColorTo.R - config.ColorFrom.R) * fkt);
            g = config.ColorFrom.G + ((config.ColorTo.G - config.ColorFrom.G) * fkt);
            b = config.ColorFrom.B + ((config.ColorTo.B - config.ColorFrom.B) * fkt);
            // Todo: not Threadsafe
            ParticleColor    = Color.FromArgb((byte)a, (byte)r, (byte)g, (byte)b);
            BlurEffectRadius = config.BlurFrom + ((config.BlurTo - config.BlurFrom) * fkt * 0.4);
            SizeV            = config.SizeFrom + ((config.SizeTo - config.SizeFrom) * fkt * 1);
        }
コード例 #3
0
 public override void init()
 {
     _config                  = new ParticleConfig();
     _config.ColorFrom        = Color.FromArgb(255, 30, 30, 30);
     _config.ColorTo          = Color.FromArgb(128, 128, 128, 128);
     _config.RadiusFrom       = 2;
     _config.RadiusTo         = 10;
     _config.BlurFrom         = 3;
     _config.BlurTo           = 30;
     _config.AppearanceSpread = 0.2;
 }
コード例 #4
0
 public override void init()
 {
     CenterOfMass             = new Vector(0.5, 0.5);
     _config                  = new ParticleConfig();
     _config.ColorFrom        = Color.FromArgb(255, 30, 30, 30);
     _config.ColorTo          = Color.FromArgb(128, 128, 128, 128);
     _config.SizeFrom         = new Vector(15, 15);
     _config.SizeTo           = new Vector(60, 60);
     _config.BlurFrom         = 2;
     _config.BlurTo           = 20;
     _config.AppearanceSpread = 0.1;
 }
コード例 #5
0
 public override void init()
 {
     _config = new ParticleConfig();
     //Debug.WriteLine("=> Particle Init = " + BaseConfig.GetType().FullName);
     _config.ColorFrom = Color.FromArgb(230, 30, 30, 30);
     _config.ColorTo = Color.FromArgb(0, 108, 108, 108);
     _config.RadiusFrom = 4;
     _config.RadiusTo = 50;
     _config.BlurFrom = 7;
     _config.BlurTo = 20;
     _config.AppearanceSpread = 0.05;
     _config.SubParticleSpread = 20;
 }
コード例 #6
0
 public override void init()
 {
     _config = new ParticleConfig();
     //Debug.WriteLine("=> Particle Init = " + BaseConfig.GetType().FullName);
     _config.ColorFrom         = Color.FromArgb(230, 30, 30, 30);
     _config.ColorTo           = Color.FromArgb(0, 108, 108, 108);
     _config.RadiusFrom        = 4;
     _config.RadiusTo          = 50;
     _config.BlurFrom          = 7;
     _config.BlurTo            = 20;
     _config.AppearanceSpread  = 0.05;
     _config.SubParticleSpread = 20;
 }
コード例 #7
0
        private void AddSparkle(float x, float y)
        {
            var endColor       = new SKColor(0, 0, 0);
            var particleConfig = new ParticleConfig
            {
                Angle        = 0,
                Life         = (float)(MaxParticleLife * _random.NextDouble()),
                Speed        = 0,
                Position     = new Vector2(x, y),
                AxisPosition = new Vector2(0, 0),
                BeginSize    = _particleSize,
                EndSize      = _particleSize,
                BeginColor   = _color,
                EndColor     = endColor
            };

            _particleSystem.AddParticle(particleConfig);
        }
コード例 #8
0
ファイル: Sparkles.cs プロジェクト: Audectra/Extensions
        public override void OnTrigger(uint triggerId, bool risingEdge)
        {
            if (!risingEdge)
            {
                return;
            }

            switch ((TriggerId)triggerId)
            {
            case TriggerId.Sparkle:
                var rand = new Random();

                for (int i = 0; i < _numParticles; i++)
                {
                    var life  = (float)(MaxParticleLife * rand.NextDouble());
                    var nextX = (float)(Width * rand.NextDouble());
                    var nextY = (float)(Height * rand.NextDouble());

                    var particleConfig = new ParticleConfig
                    {
                        Angle        = 0,
                        Life         = life,
                        Speed        = 0,
                        Position     = new Vector2(nextX, nextY),
                        AxisPosition = new Vector2(0, 0),
                        BeginSize    = _particleSize,
                        EndSize      = _particleSize,
                        BeginColor   = _color,
                        EndColor     = _color
                    };

                    _particleSystem.AddParticle(particleConfig);
                }
                break;
            }
        }
コード例 #9
0
        public virtual void Spawn(ParticleConfig config)  // _config ist null, wenn von Subklasse aufgerufen
        {
            if (config == null)
            {
                config = _config;
            }
            double fktSpread = (ThisLifetime - TimeAlive) * config.AppearanceSpread * 2;
            Random rnd       = new Random();
            Vector spreadV   = new Vector(rnd.NextDouble() - 0.5, rnd.NextDouble() - 0.5);

            if (spreadV.Length > 0)
            {
                spreadV.Normalize();
            }
            NormSpeed = config.GroupVelocity + (config.GroupSpread * spreadV);
            Position  = new Vector(rnd.Next((int)config.EmmissionArea.Left, (int)config.EmmissionArea.Right),
                                   rnd.Next((int)config.EmmissionArea.Top, (int)config.EmmissionArea.Bottom));
            ThisLifetime     = config.AverageLifetime + (config.AverageLifetime * ((rnd.NextDouble() - 0.5) * config.LifetimeSpread * 2));
            fktSpread        = (rnd.NextDouble() - 0.5) * fktSpread;
            spreadedLifetime = TimeAlive + fktSpread;
            // Todo: @debug
            //Debug.WriteLine("=> new Particle Pos:" + Position + " Speed:" + NormSpeed);
            base.Spawn();
        }
コード例 #10
0
        public virtual void Spawn(ParticleConfig config)  // _config ist null, wenn von Subklasse aufgerufen
        {
            CenterOfMass = new Vector(0.5, 0.5);
            _config.Bmp  = Properties.Resources.smoketest.ToMediaBitmap();
            if (config == null)
            {
                config = _config;
            }
            double fktSpread = (ThisLifetime - TimeAlive) * config.AppearanceSpread * 2;
            Random rnd       = new Random();
            Vector spreadV   = new Vector(rnd.NextDouble() - 0.5, rnd.NextDouble() - 0.5);

            if (spreadV.Length > 0)
            {
                spreadV.Normalize();
            }
            NormSpeed = config.GroupVelocity + (config.GroupSpread * spreadV);
            Position  = new Vector(rnd.Next((int)config.EmmissionArea.Left, (int)config.EmmissionArea.Right),
                                   rnd.Next((int)config.EmmissionArea.Top, (int)config.EmmissionArea.Bottom));
            ThisLifetime     = config.AverageLifetime + (config.AverageLifetime * ((rnd.NextDouble() - 0.5) * config.LifetimeSpread * 2));
            fktSpread        = (rnd.NextDouble() - 0.5) * fktSpread;
            spreadedLifetime = TimeAlive * fktSpread;
            base.Spawn();
        }
コード例 #11
0
ファイル: GFXParticle.cs プロジェクト: apmKrauser/ProjectGame
 public virtual void init()
 {
     _config = new ParticleConfig();
     Debug.WriteLine("=> Falsche init");
 }
コード例 #12
0
    public GameObject PlayEffect(GameObject obj, float effectTime, bool isParentBone, string posByBone = "")
    {
        if (null == obj || MainObj == null)
        {
            return(null);
        }

        GameObject sceneEffect = GameObject.Instantiate(obj) as GameObject;

        //PoolManager.Singleton.CreateObj(obj, false);
        //sceneEffect.transform.parent = null;
        //GameObject.Instantiate(obj) as GameObject;
        sceneEffect.transform.localPosition = new Vector3(RealPos.x, 0.0f, RealPos.z);
        Vector3 currentForward = sceneEffect.transform.eulerAngles;

        currentForward.y = MainObj.transform.eulerAngles.y;
        sceneEffect.transform.eulerAngles = currentForward;
        Transform boneT;

        if (!string.IsNullOrEmpty(posByBone))
        {
            boneT = LookupBone(MainObj.transform, posByBone);
            if (boneT)
            {
                if (isParentBone)
                {
                    sceneEffect.transform.parent = boneT;
                }
                Vector3 pos = boneT.position;
                sceneEffect.transform.position = pos;
            }
            else
            {
                //Debug.LogWarning("PlayEffect miss bone=" + posByBone + ",actor=" + ID.ToString());
                sceneEffect.transform.position = MainPos;
            }
        }

        EffectData recordData = new EffectData();

        recordData.m_eff     = sceneEffect;
        recordData.m_curTime = 0.0f;

        if (sceneEffect.transform.parent == null)
        {
            sceneEffect.transform.parent = gameObject.transform;
        }
        else
        {
            if (BindToActor == false)
            {
                recordData.m_followObject = sceneEffect.transform.parent.gameObject;
                Transform bindT = gameObject.transform.Find(recordData.m_followObject.name);
                if (bindT == null)
                {
                    recordData.m_bindObject = new GameObject(recordData.m_followObject.name);
                    recordData.m_bindObject.transform.parent = gameObject.transform;
                }
                else
                {
                    recordData.m_bindObject = bindT.gameObject;
                }
                sceneEffect.transform.parent = recordData.m_bindObject.transform;
            }
        }

        ParticleSystem partSys = sceneEffect.GetComponent <ParticleSystem>();

        if (null != partSys && !partSys.loop)
        {
            ParticleConfig config = sceneEffect.GetComponent <ParticleConfig>();
            if (null != config && config.RotateParticle)
            {
                partSys.startRotation = MainObj.transform.eulerAngles.y * Mathf.PI / 180.0f;
            }
            recordData.m_duration = partSys.duration;
            //MainGame.Singleton.StartCoroutine(RemoveEffect(++m_effectIndex, sceneEffect, partSys.duration));
        }
        else
        {
            //MainGame.Singleton.StartCoroutine(RemoveEffect(++m_effectIndex, sceneEffect, effectTime));
            recordData.m_duration = effectTime;
        }
        Effects.Add(recordData);
        sceneEffect.SetActive(true);
        return(sceneEffect);
    }
コード例 #13
0
ファイル: GFXParticle.cs プロジェクト: apmKrauser/ProjectGame
 public virtual void init(ParticleConfig _cfg)
 {
     _config = _cfg;
 }
コード例 #14
0
ファイル: GFXParticle.cs プロジェクト: apmKrauser/ProjectGame
 public virtual void init()
 {
     _config = new ParticleConfig();
     Debug.WriteLine("=> Falsche init");
 }
コード例 #15
0
 public ParticleHifiController(HifiDevice device, IOptions <ParticleConfig> opts)
 {
     this.device = device;
     options     = opts.Value;
 }
コード例 #16
0
 // _config ist null, wenn von Subklasse aufgerufen
 public virtual void Spawn(ParticleConfig config)
 {
     if (config == null) config = _config;
     double fktSpread = (ThisLifetime - TimeAlive) * config.AppearanceSpread * 2;
     Random rnd = new Random();
     Vector spreadV = new Vector(rnd.NextDouble()-0.5, rnd.NextDouble()-0.5);
     if (spreadV.Length > 0)
         spreadV.Normalize();
     NormSpeed = config.GroupVelocity + (config.GroupSpread * spreadV);
     Position = new Vector(rnd.Next((int)config.EmmissionArea.Left, (int)config.EmmissionArea.Right),
                           rnd.Next((int)config.EmmissionArea.Top, (int)config.EmmissionArea.Bottom));
     ThisLifetime = config.AverageLifetime + (config.AverageLifetime * ((rnd.NextDouble()-0.5) * config.LifetimeSpread * 2));
     fktSpread = (rnd.NextDouble() - 0.5) * fktSpread;
     spreadedLifetime = TimeAlive + fktSpread;
     // Todo: @debug
     //Debug.WriteLine("=> new Particle Pos:" + Position + " Speed:" + NormSpeed);
     base.Spawn();
 }
コード例 #17
0
 public override void init(GFXParticle.ParticleConfig _cfg)
 {
     _config = (_cfg as ParticleConfig);
 }
コード例 #18
0
 public override void init()
 {
     _config = new ParticleConfig();
     _config.ColorFrom = Color.FromArgb(255, 30, 30, 30);
     _config.ColorTo = Color.FromArgb(128, 128, 128, 128);
     _config.RadiusFrom = 2;
     _config.RadiusTo = 10;
     _config.BlurFrom = 3;
     _config.BlurTo = 30;
     _config.AppearanceSpread = 0.2;
 }
コード例 #19
0
 public override void init(GFXParticle.ParticleConfig _cfg)
 {
     _config = (_cfg as ParticleConfig);
     base.init(_cfg);
 }
コード例 #20
0
 public StaticHifiRepository(IOptions <ParticleConfig> opts)
 {
     options = opts.Value;
 }
コード例 #21
0
ファイル: GFXParticle.cs プロジェクト: apmKrauser/ProjectGame
 public virtual void init(ParticleConfig _cfg)
 {
     _config = _cfg;
 }
コード例 #22
0
ファイル: Fireball.cs プロジェクト: jaysan1292/JdGameBase
        public override void Update(float delta, GameTime gameTime)
        {
            ActiveDuration += delta;
            const float maxSpeed = 0.25f;
            var velocity1 = Utilities.RandomVelocity(Random, maxSpeed);
            var velocity2 = Utilities.RandomVelocity(Random, maxSpeed);
            var velocity3 = Utilities.RandomVelocity(Random, maxSpeed);
            var smokeVelocity = Utilities.RandomVelocity(Random, 0.1f);

            var fireballConfig = new ParticleConfig {
                Position = Position,
                TimeToLive = 750f,
                Behavior = ParticleBehavior.Directional,
                Direction = Direction,
                ScaleInterpolate = true
            };

            const float voffset = 2.25f;
            fireballConfig.Color = Config.BaseFireballColor;
            fireballConfig.Scale = 1.5f * Config.Scale;
            fireballConfig.Velocity = velocity1 / voffset;
            _one.CreateParticle(delta, fireballConfig);

            fireballConfig.Color = Config.SecondaryFireballColor;
            fireballConfig.Scale = 1.2f * Config.Scale;
            fireballConfig.Velocity = velocity2 / voffset;
            _two.CreateParticle(delta, fireballConfig);

            fireballConfig.Color = Config.TertiaryFireballColor;
            fireballConfig.Scale = 1.1f * Config.Scale;
            fireballConfig.Velocity = velocity3 / voffset;
            _three.CreateParticle(delta, fireballConfig);

            var sizeOffset = Utilities.RandomWithinRange(0.85f, 1.15f);
            fireballConfig.Color = Config.BaseSmokeColor;
            fireballConfig.Scale = 1.4f * sizeOffset * Config.Scale * Config.SmokeSize;
            fireballConfig.Velocity = (smokeVelocity / 5f) * Config.SmokeSpeed;
            fireballConfig.TimeToLive = Config.SmokeLifetime;
            fireballConfig.ScaleInterpolate = false;
            fireballConfig.ColorInterpolate = true;
            fireballConfig.FadeStartTime = 750f;
            _smokeOne.CreateParticle(delta, fireballConfig);

            fireballConfig.Color = Config.SecondarySmokeColor;
            fireballConfig.Scale = 1.2f * sizeOffset * Config.Scale * Config.SmokeSize;
            _smokeTwo.CreateParticle(delta, fireballConfig);

            _one.Update(delta, gameTime);
            _two.Update(delta, gameTime);
            _three.Update(delta, gameTime);
            _smokeOne.Update(delta, gameTime);
            _smokeTwo.Update(delta, gameTime);
        }
コード例 #23
0
 // _config ist null, wenn von Subklasse aufgerufen
 public virtual void Spawn(ParticleConfig config)
 {
     CenterOfMass = new Vector(0.5, 0.5);
     _config.Bmp = Properties.Resources.smoketest.ToMediaBitmap();
     if (config == null) config = _config;
     double fktSpread = (ThisLifetime - TimeAlive) * config.AppearanceSpread * 2;
     Random rnd = new Random();
     Vector spreadV = new Vector(rnd.NextDouble()-0.5, rnd.NextDouble()-0.5);
     if (spreadV.Length > 0)
         spreadV.Normalize();
     NormSpeed = config.GroupVelocity + (config.GroupSpread * spreadV);
     Position = new Vector(rnd.Next((int)config.EmmissionArea.Left, (int)config.EmmissionArea.Right),
                           rnd.Next((int)config.EmmissionArea.Top, (int)config.EmmissionArea.Bottom));
     ThisLifetime = config.AverageLifetime + (config.AverageLifetime * ((rnd.NextDouble()-0.5) * config.LifetimeSpread * 2));
     fktSpread = (rnd.NextDouble() - 0.5) * fktSpread;
     spreadedLifetime = TimeAlive * fktSpread;
     base.Spawn();
 }
コード例 #24
0
 public override void init()
 {
     CenterOfMass = new Vector(0.5, 0.5);
     _config = new ParticleConfig();
     _config.ColorFrom = Color.FromArgb(255, 30, 30, 30);
     _config.ColorTo = Color.FromArgb(128, 128, 128, 128);
     _config.SizeFrom = new Vector(15,15);
     _config.SizeTo = new Vector(60, 60);
     _config.BlurFrom = 2;
     _config.BlurTo = 20;
     _config.AppearanceSpread = 0.1;
 }