Notice: Undefined index: avatar in /web/htdocs/www.comunidadgm.org/home/Sources/Load.php(2363) : eval()'d code on line 162
Dibujar "electricidad"

Noticias

Se ha publicado un nuevo servicio, el Portal de Juegos Online

Comunidad Game Maker

Bienvenid@ a la comunidad hispana de Game Maker. Nuestro objetivo es crear videojuegos y dar soporte en castellano de GM. Para mejorar nuestro servicio hemos implantado, como adicion al reglamento general, algunas normas especificas en los subforos más comunes. ¡No olvides informarte antes de participar!.

Autor Tema: Dibujar "electricidad"  (Leído 5658 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Wadk

  • In order to see...
  • Legendario
  • *
  • Puntos: 274
  • Mensajes: 2.355
  • Sexo: Masculino
  • ... you must close your eyes.
    • Ver Perfil
en: Marzo 21, 2010, 06:49:34 pm
Nombre del creador: Wadk
Breve descripción de su función: Dibuja "electricidad" generada en el momento a base de líneas rectas.
Versión GM utilizada: :GM5: :GM6: :GM7: :GM8:
Código del Script:
Código: [Seleccionar]
var x1,y1,x2,y2,xx,yy,xa,ya,i,j;
x1=argument0;
y1=argument1;
x2=argument2;
y2=argument3;
dis=point_distance(x1,y1,x2,y2);
dir=point_direction(x1,y1,x2,y2);

for(i=1;i<=argument4;i+=1){
    xx=x1;
    yy=y1;
    for(j=0;j<argument5-1;j+=1){
        xa=lengthdir_x(dis/argument5,dir+(random(argument6)-argument6/2));
        ya=lengthdir_y(dis/argument5,dir+(random(argument6)-argument6/2));
        draw_line(xx,yy,xx+xa,yy+ya);
        xx+=xa;
        yy+=ya;
    }
    draw_line(xx,yy,x2,y2);
    xx=x1;
    yy=y1;
    x1=x2;
    y1=y2;
    x2=xx;
    y2=yy;
    dir+=180;
}
Argumentos: dibujar_electricidad(x1,y1,x2,y2,densidad,fraccionado,distorsión);
x1, y1, x2 e y2 son para determinar la posición de la electricidad.
densidad es el número de "rayos". Lo mejor es usar un número par.
fraccionado indica el número de veces que cada "rayo" se fracciona.
distorsión es lo máximo que puede "doblarse" cada rayo cada vez que es fraccionado.
Ejemplo: dibujar_electricidad(0,0,300,300,4,10,30);


Modificación por Ciberman para modificar el color y el grosor de los "rayos":
Código: [Seleccionar]
//dibujar_electricidad_ext(x1,y1,x2,y2,densidad,fraccionado,distorsión,col1,col2,col3,widthMin,widthMax);
var x1,y1,x2,y2,xx,yy,xa,ya,i,j,col_init,alp_init,wl;
col_init=draw_get_color();
alp_init=draw_get_alpha();
x1=argument0;
y1=argument1;
x2=argument2;
y2=argument3;
dis=point_distance(x1,y1,x2,y2);
dir=point_direction(x1,y1,x2,y2);

for(i=1;i<=argument4;i+=1){
    xx=x1;
    yy=y1;
    wl=round(random(argument11-argument10)+argument11);;
    for(j=0;j<argument5-1;j+=1){
        xa=lengthdir_x(dis/argument5,dir+(random(argument6)-argument6/2));
        ya=lengthdir_y(dis/argument5,dir+(random(argument6)-argument6/2));
        draw_set_color(argument[choose(7,8,9)]);
        draw_set_alpha(random(.5)+.5)
        draw_line_width(xx,yy,xx+xa,yy+ya,wl);
        xx+=xa;
        yy+=ya;
    }
    draw_line_width(xx,yy,x2,y2,wl);
    xx=x1;
    yy=y1;
    x1=x2;
    y1=y2;
    x2=xx;
    y2=yy;
    dir+=180;
}

draw_set_color(col_init);
draw_set_color(alp_init);
Se agregan 5 argumentos: col1, col2 y col3 que son 3 colores para los rayos, y widthMax y widthMin que son el grosor máximo y mínimo respectivamente de los rayos.
El script modificado podría no funcionar en todas las versiones de GM.
« última modificación: Marzo 31, 2010, 02:35:36 am por Wadk »

 


No Tienes Permisos Para Dar Puntos
point 5 Puntos

Usuarios que puntuaron el tema » Johann (5 Pts) 


Desconectado soccer2008

  • Okupa
  • *
  • Puntos: 0
  • Mensajes: 518
  • WWW.fileceru.foroactivo.com
    • Ver Perfil
Respuesta #1 en: Marzo 22, 2010, 05:28:44 am
Pues en gm5 anda perfecto, muy buen aporte Wadk  XD XD XD

Un foro donde hay de todo: http://fileceru.foroactivo.net (se necesitan moderadores para el foro)
 


Desconectado Wadk

  • In order to see...
  • Legendario
  • *
  • Puntos: 274
  • Mensajes: 2.355
  • Sexo: Masculino
  • ... you must close your eyes.
    • Ver Perfil
Respuesta #2 en: Marzo 23, 2010, 01:10:48 am
Gracias, Soccer. Actualizo el primer post...

 


Desconectado Hackware

Respuesta #3 en: Marzo 23, 2010, 03:53:44 am
¿Es posible que si funciona bien en :GM8: y :GM5: no funcione bien en las versiones entre ellas (:GM6: y :GM7:)?

       
 


Desconectado kakashigna

Respuesta #4 en: Marzo 23, 2010, 05:53:40 pm
Muy buen script...algo que haria yo(y hare si lo uso XD )seria cambiar el color y alpha de los rayos,es decir que se vean rayos blancos,azule y diversos colores que tenga la electricidad XD


Asi!!!, lo probe tambien en :GM7: y si funciona.

Orgulloso veterano de CGM
El poder de hacer un buen juego esta en tus manos.
 


Desconectado Killer

Respuesta #5 en: Marzo 23, 2010, 08:48:47 pm
Bueno, considerando que el script utiliza la funcion basica de linea, se puede simplemente utilizar draw_set_alpha y draw_set_color antes de utilizarlo. De esa manera el script permanece simple y funcional.

No creo que sea realmente posible que un juego que funciona en  :GM8::GM5: no funcione en  :GM6::GM7:, pero podria equivocarme. Sea como sea puedo confirmarte que funciona en  :GM6:.

 


Desconectado Wadk

  • In order to see...
  • Legendario
  • *
  • Puntos: 274
  • Mensajes: 2.355
  • Sexo: Masculino
  • ... you must close your eyes.
    • Ver Perfil
Respuesta #6 en: Marzo 25, 2010, 05:11:41 pm
No sé si es posible lo que comenta Hackware, pero lo dejé así por las dudas. Igual ya está confirmado que funciona en las 4, así que actualcé el primer post.
Y claro, podés hacer lo que dijo Killer para cambiar el color y alpha de las líneas, a menos que quieras que se dibujen varias líneas de distinto color/alpha en el mismo step, en ese caso tendrías que modificar el script.
Gracias a todos por sus comentarios.

 


Desconectado Ciberman

  • Okupa
  • *
  • Puntos: 212
  • Mensajes: 1.221
  • Agradecido: 4 veces
  • Sexo: Masculino
  • Ciberman Games - Un pixel Marca la Diferencia
    • Ver Perfil
    • Ciberman
Respuesta #7 en: Marzo 26, 2010, 03:17:41 pm
Código: [Seleccionar]
//dibujar_electricidad_ext(x1,y1,x2,y2,densidad,fraccionado,distorsión,col1,col2,col3,widthMin,widthMax);
var x1,y1,x2,y2,xx,yy,xa,ya,i,j,col_init,alp_init,wl;
col_init=draw_get_color();
alp_init=draw_get_alpha();
x1=argument0;
y1=argument1;
x2=argument2;
y2=argument3;
dis=point_distance(x1,y1,x2,y2);
dir=point_direction(x1,y1,x2,y2);

for(i=1;i<=argument4;i+=1){
    xx=x1;
    yy=y1;
    wl=round(random(argument11-argument10)+argument11);;
    for(j=0;j<argument5-1;j+=1){
        xa=lengthdir_x(dis/argument5,dir+(random(argument6)-argument6/2));
        ya=lengthdir_y(dis/argument5,dir+(random(argument6)-argument6/2));
        draw_set_color(argument[choose(7,8,9)]);
        draw_set_alpha(random(.5)+.5)
        draw_line_width(xx,yy,xx+xa,yy+ya,wl);
        xx+=xa;
        yy+=ya;
    }
    draw_line_width(xx,yy,x2,y2,wl);
    xx=x1;
    yy=y1;
    x1=x2;
    y1=y2;
    x2=xx;
    y2=yy;
    dir+=180;
}

draw_set_color(col_init);
draw_set_color(alp_init);

exelente script, dejo una lijera modificacion simplemente de lo que se comentaba de añadirle alpha, colores y grosores...

Cita de: CGM 2008
CGM: Un poco mas serios, mejores Juegos.
Bienvenid@ a CGM. Recomenzamos desde cero, con un reglamento mas estricto, mejor definido y con mas ganas que nunca de hacer juegos con calidad comercial. El que avisa no es traidor: Leete las reglas si no quieres llevarte un capon makero.
Mercilessly!!
Plug-In para animaciones: http://ciberman.net/tweenline/
 


Desconectado Hackware

Respuesta #8 en: Marzo 30, 2010, 09:47:39 pm
Pero al agregarle grosores, deja de funcionar en versiones viejas.

       
 


Desconectado Ciberman

  • Okupa
  • *
  • Puntos: 212
  • Mensajes: 1.221
  • Agradecido: 4 veces
  • Sexo: Masculino
  • Ciberman Games - Un pixel Marca la Diferencia
    • Ver Perfil
    • Ciberman
Respuesta #9 en: Marzo 31, 2010, 12:44:28 am
en la 5 no hay grosores? no sabía, gracias hackware...
igual debe de funcionar en 6, no?
igualmente, wadlk se merece un aplauso

Cita de: CGM 2008
CGM: Un poco mas serios, mejores Juegos.
Bienvenid@ a CGM. Recomenzamos desde cero, con un reglamento mas estricto, mejor definido y con mas ganas que nunca de hacer juegos con calidad comercial. El que avisa no es traidor: Leete las reglas si no quieres llevarte un capon makero.
Mercilessly!!
Plug-In para animaciones: http://ciberman.net/tweenline/
 


Desconectado Wadk

  • In order to see...
  • Legendario
  • *
  • Puntos: 274
  • Mensajes: 2.355
  • Sexo: Masculino
  • ... you must close your eyes.
    • Ver Perfil
Respuesta #10 en: Marzo 31, 2010, 02:36:23 am
Gracias Ciberman XD. Agrego el script modificado al primer post.

 


elviskelley

  • Visitante
Respuesta #11 en: Abril 15, 2010, 06:12:56 pm
muy util para Fx.

 


Desconectado 006 Time

Respuesta #12 en: Abril 15, 2010, 08:23:43 pm
Intente usarlo pero...  :-[ no se como... si alguien subiera una demo de como se utiliza... le estaria muy agradecido... XD

 


Desconectado Silver_light

Respuesta #13 en: Abril 15, 2010, 08:37:08 pm
Aquí hago uso del Script de Wadk, no el modificado.
 Es simple, solo coloque el script y lo llamé desde el evento Draw.

 


Desconectado eerickd

  • Visitante
  • *
  • Puntos: 0
  • Mensajes: 4
    • Ver Perfil
Respuesta #14 en: Agosto 17, 2010, 11:28:16 am
qe son los argumentos
am
en game maker 8 pro
aniadi un scrip
bueno este scrip
y cree una room
y no paso nada
tengo qe crear un objeto
o algo asi?