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; } }
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); }
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; }
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; }
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; }
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); }
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; } }
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(); }
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(); }
public virtual void init() { _config = new ParticleConfig(); Debug.WriteLine("=> Falsche init"); }
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); }
public virtual void init(ParticleConfig _cfg) { _config = _cfg; }
public ParticleHifiController(HifiDevice device, IOptions <ParticleConfig> opts) { this.device = device; options = opts.Value; }
// _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(); }
public override void init(GFXParticle.ParticleConfig _cfg) { _config = (_cfg as ParticleConfig); }
public override void init(GFXParticle.ParticleConfig _cfg) { _config = (_cfg as ParticleConfig); base.init(_cfg); }
public StaticHifiRepository(IOptions <ParticleConfig> opts) { options = opts.Value; }
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); }
// _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(); }
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; }