示例#1
0
        public static ParticleSystem createSystem(JsonObject initData)
        {
            ParticleSystem ps = new ParticleSystem();

            ps.continuous   = (bool)initData["continuous"];
            ps.lifetime     = (float)initData["lifetime"];
            ps.maxParticles = (int)initData["maxParticles"];
            String            textureName = (string)initData["material"];
            TextureDescriptor td          = new TextureDescriptor(textureName);

            ps.material = Renderer.resourceManager.getResource(td) as Texture;

            JsonObject features = initData["features"];

            foreach (String key in features.keys)
            {
                ParticleFeatureCreator creator = null;
                if (featureFactory.TryGetValue(key, out creator) == true)
                {
                    JsonObject      featureData = features[key];
                    ParticleFeature f           = creator.create(featureData);
                    ps.addFeature(f);
                }
                else
                {
                    //don't get here
                    throw new Exception(String.Format("Unable to find creator for {0}", key));
                }
            }

            addParticleSystem(ps);
            return(ps);
        }
示例#2
0
        public static JsonObject serialize(ParticleFeature feature)
        {
            JsonObject obj = null;

            if (feature is LinearForceFeature)
            {
                obj = serialize(feature as LinearForceFeature);
            }
            if (feature is RadialForceFeature)
            {
                obj = serialize(feature as RadialForceFeature);
            }
            if (feature is TangentialForceFeature)
            {
                obj = serialize(feature as TangentialForceFeature);
            }
            if (feature is DragForceFeature)
            {
                obj = serialize(feature as DragForceFeature);
            }
            if (feature is RotationFeature)
            {
                obj = serialize(feature as RotationFeature);
            }
            if (feature is ScaleFeature)
            {
                obj = serialize(feature as ScaleFeature);
            }
            if (feature is AlphaFeature)
            {
                obj = serialize(feature as AlphaFeature);
            }
            if (feature is AlphaFromLifeFeature)
            {
                obj = serialize(feature as AlphaFromLifeFeature);
            }
            if (feature is EmitterFeature)
            {
                obj = serialize(feature as EmitterFeature);
            }

            return(obj);
        }
示例#3
0
 public void removeFeature(ParticleFeature feature)
 {
     features.Remove(feature);
 }
示例#4
0
 public void addFeature(ParticleFeature feature)
 {
     features.Add(feature);
     feature.mySystem = this;
 }