예제 #1
0
        public void ApplyAnimacion(ref SSAParticle p)
        {
            switch (Atype)
            {
                case Tipo.Mover:
                    Point posicion = p.GetPos();
                    posicion.X += ((Point)parametros[0]).X;
                    posicion.Y += ((Point)parametros[0]).Y;
                    p.SetPos(posicion);
                    break;
                case Tipo.Destruir:
                    double tiempoD=((double)parametros[0]);
                    p.SetLife(p.GetBirth()+tiempoD);
                    break;

                default:
                    break;
            }
        }
예제 #2
0
        //Empezamos con una version sencilla el main llevará el control de las iteraciones del motor
        //El motor solo ha de preocuparse por crear las particulas
        public void Itera()
        {
            int particulas = world.Count;

            if (time * brate <= particulas)
            {
                for (int i = 0; i < brate; i++)
                {
                    //Ejemplo más adelante se podrá modificar pudiendo cambiar la particula
                    SSAParticle particula = new SSAParticle(time);
                    if (formas.Length>0 && formas[0]!=null)
                    {
                        particula.SetForma(formas);
                    }

                    pendientes.Push(particula);
                }
            }
            Anima();
            Procesa();
            time += trate;
        }
예제 #3
0
 private lineaASS ParticulaToLinea(SSAParticle particula,int i)
 {
     lineaASS l = new lineaASS();
     Tiempo ti = new Tiempo();
     Tiempo tf = new Tiempo();
     ti.setTiempo(time);
     tf.setTiempo(time + trate);
     l.t_inicial = ti;
     l.t_final = tf;
     l.texto = particula.Show(time)[i];
     return l;
 }
예제 #4
0
 private void Modifica(ref SSAParticle p)
 {
     while(animaciones.Count>0)
     {
         ((ParticleAnimacion)animaciones.Pop()).ApplyAnimacion(ref p);
     }
 }