Con el uso de la Clase Point se pueden simplificar muchos códigos y, además de tener que usar poca o nula trigonométrica, conseguir un aumento significativo de la velocidad de proceso.
Este código simplemente genera rayos. No se necesita nada más que poner dicho código en las acciones de primer frame.
Crea un MC rayo donde "dibujamos" un fractal creado con recursividad de la misma función arco().
Dicha función necesita 4 parámetros para llamarla: 2 puntos A y B entre los que saldrá el rayo ( en el ejemplo usamos uno fijo y otro tomando la posición del mouse), el ancho del trazo del rayo y su linealidad ( cuanto menor es ese valor, más recto y cuanto mayor, mas quebrado.
Tiene añadido un filtro de iluminación para ampliar el efecto, se pueden variar los parámetros del mismo para obtener otros resultados.
Código :
import flash.geom.*; import flash.filters.*; rayo = this.createEmptyMovieClip("e",100); BF = new GlowFilter(0xaaaaff,.5,16,16,2,1); arco = function (A,B,anc,tz){ var d1 = Point.distance(A,B)/2; var ang = Math.atan2(B.y-A.y, B.x-A.x)-.78; var C = Point.interpolate(A,B,.5).add(Point.polar(d1*tz*(2*Math.random()-1),ang)); rayo.lineStyle(anc,0xc2c7fd,anc*50); if (d1>15)arco(C,C.add(Point.polar(d1,ang+1.5*Math.random())),anc/1.9,tz); if (d1>10){arco(A,C,anc,tz); arco(C,B,anc,tz);} else{rayo.moveTo(A.x,A.y); rayo.lineTo(C.x,C.y); rayo.lineTo(B.x,B.y); rayo.filters=[BF]} } nrayo = onMouseMove = function(){ A = new Point(200,0); B = new Point(_xmouse,_ymouse); rayo.clear(); arco(A,B,2,.5); } IT = setInterval(nrayo,30);//opcional
Pequeñas variaciones y ampliaciones sobre este tipo de códigos permiten la generación de múltiples texturas (mármoles, maderas, vegetales, etc..) y que podremos generar sin tener que importarlas. Pero eso será el motivo de un trabajo mucho más extenso y específico.
¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.
Por Dano el 05 de Julio de 2007
Por Teseo el 05 de Julio de 2007
Estoy trabajando con una colección de texturas generadas por código. No es caso de ponerlas una a una. Cuando tenga un par de docenas las subo todas juntas. Las más "generales" ya las tengo: piedra, marmol, cemento, maderas a tutiplén, texturas de hojas, césped y otros vegetales etc...
Una vez que le he cogido el truco........van a la carrera y me divierto mucho buscándolas!
Por Freddie el 05 de Julio de 2007
Teseo :
Por HernanRivas el 05 de Julio de 2007
Teseo :
Por Eleuterio el 06 de Julio de 2007
Por esutoraiki el 07 de Julio de 2007
Pero en verdad, te admiro. Una pregunta ¿eres físico o matemático?.
Que pena la preguntadera
Por william el 10 de Agosto de 2007
Por Sisco el 10 de Agosto de 2007
Teseo eres mi ídolo!
Siempre soñé hacer cosas así como agua fuego lluvia... y ahora Rayos!
Me encantan estos efectos.
Por penHolder el 29 de Octubre de 2007
Por israel gonzalez el 29 de Octubre de 2007
mi correo es
[email protected]
saludos
Por javier el 28 de Enero de 2008
Por Teseo el 28 de Enero de 2008
Copias el código de arriba y lo pegas en las acciones del primer frame de la película.
Control+enter o ( Control->Probar película) y ya está.
Trastear con los valores para ver que hace cada uno, si se desea.
Nota: en este caso no se ha creado fondo y por ello es preciso poner el fondo del documento en un color azul oscuro. (Control+J o Modificar->Documento y color de fondo)
Por Uruviel el 11 de Septiembre de 2008
Por elchininet el 11 de Septiembre de 2008
http://www.cristalab.com/foros/t34689_efectos-lago-rio-y-cascada-con-bitmapdata-de-flash-8.html
http://www.cristalab.com/foros/t33701_efecto-de-agua-con-la-clase-bitmapdata--de-flash-8.html
Por gaston el 26 de Septiembre de 2008
Por jack el 21 de Enero de 2009
nuevos flash ...para impresionar a los usurios...
Por shamtshimt el 21 de Enero de 2009
Por michel el 11 de Noviembre de 2009
Por rayza el 11 de Noviembre de 2009