Example #1
0
            public void AddScoreParticle( string pName, SpriteTileCrystallonEntity pParent, Vector4 pColor)
            {
                if (ActiveScoreParticles >= ScoreParticles.Count) {
                #if DEBUG
                    System.Console.WriteLine("Hit Max Particle Count(" + ScoreParticles.Count.ToString() + "! Particle not created.");
                #endif
                    return;
                }
                if( pName == null) {
                    return;
                }

                Particle p = ScoreParticles[ActiveScoreParticles];
                p.variant = (float)EnumHelper.FromString<Icons>(pName);
                p.parent = pParent;

                p.position = pParent.getNode().LocalToWorld(pParent.getNode().Pivot) + p.offset;
                p.color = pColor;
                p.time = 0.0f;
                p.lifetime = 2.0f;
                p.size = new Vector2(64.0f, 64.0f);
                p.offset = new Vector2( p.size.X * 0.5f, pParent.Height * 0.5f);
                //				p.size_delta = Vector2.Zero;
                p.velocity = -0.3f * p.lifetime * gravity + Vector2.UnitX * GameScene.Random.NextSign()*(50.0f + 50.0f * GameScene.Random.NextFloat());
                p.type = (int)ParticleType.SCORE;
                ActiveScoreParticles++;
            }
Example #2
0
            //            public void AddParticlesBurst(int count, Vector2 position, Vector2 velocity, Vector4 color, float jitter = 0.0f, float scale_multiplier = 1.0f)
            //            {
            //                for (int i = 0; i < count; ++i)
            //                {
            //                    Vector2 p = position + Game.Instance.Random.NextVector2() * jitter;
            //                    Vector2 v = velocity + Game.Instance.Random.NextVector2() * jitter;
            //                    AddParticle(p, v, color, scale_multiplier);
            //                }
            //            }
            //
            //            public void AddParticlesCone(int count, Vector2 position, Vector2 velocity, Vector4 color, float spread, float scale_multiplier = 1.0f)
            //            {
            //                for (int i = 0; i < count; ++i)
            //                {
            //                    Vector2 p = position + velocity * Game.Instance.Random.NextFloat();
            //                    Vector2 v = velocity + velocity.Rotate(Game.Instance.Random.NextSignedFloat() * spread + spread * 0.5f);
            //                    AddParticle(p, v, color, scale_multiplier);
            //                }
            //            }
            public void AddParticle( int pVariant, SpriteTileCrystallonEntity pParent, Vector4 color, float scale_multiplier)
            {
                if (ActiveQualityParticles >= QualityParticles.Count)
                {
                #if DEBUG
                    System.Console.WriteLine("Hit Max Particle Count(" + QualityParticles.Count.ToString() + "! Particle not created.");
                #endif
                    return;
                }

                Particle p = QualityParticles[ActiveQualityParticles];
                p.variant = pVariant;
                p.parent = pParent;
                p.offset = new Vector2( GameScene.Random.NextSignedFloat() * pParent.Width*0.25f + 15.0f,
                                       GameScene.Random.NextSignedFloat() * pParent.Height*0.35f + 15.0f);
                p.position = pParent.getNode().LocalToWorld(new Vector2(pParent.Width/2.0f, pParent.Height/2.0f)) + p.offset;
                //				p.velocity = GameScene.Random.NextVector2();
                p.color = color;
                p.time = 0.0f;
                p.lifetime = 0.3f;
                p.size = new Vector2( scale_multiplier, scale_multiplier);
                p.velocity = Vector2.Zero;
                p.size_delta = new Vector2(1.5f);
                p.type = (int)ParticleType.QUALITY;
                //				p.gravity = 0.75f;
                ActiveQualityParticles++;
            }