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!.

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - hardraid

Páginas: 1
1
Desarrollo de Scripts / Efecto Blur(nublado) Version Nueva
« en: Marzo 19, 2010, 03:26:09 pm »
Creador:HardRaid
Version GM:  :GM8: :GM7:
Descripcion: Bueno la mayoria ya conoce el efecto blur no hay mucho que explicar lo que hace este script es nublar un sprite, cuanto mayor cantidad(argument0) mas nublado se va a ver. el codigo es simple pero puede optimizarse, pueden postear aqui y yo lo actualizo. DEJO UN EJEMPLO ADJUNTO DE DESENFOQUE(Modificado).
Codigo:

Código: [Seleccionar]
//Version modificada
//scr_blur(cantidad);
if(!variable_local_exists("sup")){sup=surface_create(sprite_width+(argument0*2),sprite_height+(argument0*2));}
surface_set_target(sup);
xx=surface_get_width(sup)/2;
yy=surface_get_height(sup)/2;
draw_sprite_ext(sprite_index,image_index,xx,yy,image_xscale,image_yscale,image_angle,image_blend,1);
draw_sprite_ext(sprite_index,image_index,xx-argument0,yy+argument0,image_xscale,image_yscale,image_angle,image_blend,1/8);
draw_sprite_ext(sprite_index,image_index,xx-argument0,yy-argument0,image_xscale,image_yscale,image_angle,image_blend,1/8);
draw_sprite_ext(sprite_index,image_index,xx+argument0,yy+argument0,image_xscale,image_yscale,image_angle,image_blend,1/8);
draw_sprite_ext(sprite_index,image_index,xx,yy-argument0,image_xscale,image_yscale,image_angle,image_blend,1/8);
draw_sprite_ext(sprite_index,image_index,xx,yy+argument0,image_xscale,image_yscale,image_angle,image_blend,1/8);
draw_sprite_ext(sprite_index,image_index,xx+argument0,yy,image_xscale,image_yscale,image_angle,image_blend,1/8);
draw_sprite_ext(sprite_index,image_index,xx-argument0,yy,image_xscale,image_yscale,image_angle,image_blend,1/8);
draw_set_blend_mode_ext(bm_one,bm_one);
draw_sprite_ext(sprite_index,image_index,xx,yy,image_xscale,image_yscale,image_angle,c_black,1);
draw_set_blend_mode(bm_normal);
surface_reset_target();
draw_surface(sup,x-xx,y-yy);



*El ejemplo adjunto muestra un efecto de desenfoque en objetos a cierta distancia como lo hace la vision humana y seguro la de la mayoria de los animales.

2
Preguntas y respuestas / Funciones Multijugador GML
« en: Febrero 26, 2010, 06:21:40 pm »
Hola yo sabia que habia un problema con el motor multijugador de GML pero eso fue hace bastante tiempo y desde ese momento han salido varias versiones nuevas y quisiera saber si ya se pueden usar tranquilamente. si el problema sigue entonces voy a tener que usar 39DLL pero que alguien me pase un manual "completo" de todas sus funciones por favor y en "español" si no es mucha molestia Gracias.

3
Preguntas y respuestas / Escala de grises
« en: Febrero 19, 2010, 02:25:54 pm »
Hola quisiera saber como pasar una imagen a escala de grises, no puedo lograrlo con mezclas, lo logre de una forma un poco cavernicola xD y por eso es muy lenta.
Código: [Seleccionar]
//Bueno esto es un trozo de codigo q se encarga de hacer el trabajo, lo hago dentro de uan superficie.
for(i=0;i<background_get_width(back);i+=1)
{
    for(j=0;j<background_get_height(back);j+=1)
    {
        color=surface_getpixel(sup,i,j);
        tono=color_get_hue(color);
        valor=color_get_value(color);
        color2=make_color_hsv(tono,1,valor);
        draw_set_color(color2);
        draw_point(i,j);
    }
}

4
Preguntas y respuestas / draw_set_blend_mode_ext(scr,dest)[SOLUCIONADO]
« en: Febrero 18, 2010, 07:02:31 pm »
Quisiera saber como funciona esta funcion exactamente, no comprendo bien su funcionamiento, la informacion q me muestra el manual me parece un poco corta, alguien con mayor experiencia podria explicarme como funcionan las mezclas.
Citar
draw_set_blend_mode_ext(src,dest) Indica el modo de mezcla que se debe usar para la fuente y el destino. El color resultante se calcula aplicando a cada color (fuente y destino) un factor diferente. Estos factores de mezcla se especifican con esta función. Los colores de fuente y el destino están formados por las componentes de rojo, verde, azul y transparencia. Así, llamamos a los componentes de la fuente (Rf,Gf,Bf,Af) y a los del destino (Rd, Gd, Bd, Ad). Todos estos factores se encuentran entre 0 y 1. Los factores de mezcla que puede usar en esta función son:
bm_zero: El factor de mezcla es (0, 0, 0, 0).
bm_one: El factor de mezcla es (1, 1, 1, 1).
bm_src_color: El factor de mezcla es (Rf, Gf, Bf, Af).
bm_inv_src_color: El factor de mezcla es (1–Rf, 1–Gf, 1–Bf, 1–Af).
bm_src_alpha: El factor de mezcla es (Af, Af, Af, Af).
bm_inv_src_alpha: El factor de mezcla es (1–Af, 1–Af, 1–Af, 1–Af).
bm_dest_alpha: El factor de mezcla es (Ad, Ad, Ad, Ad).
bm_inv_dest_alpha: El factor de mezcla es (1–Ad, 1–Ad, 1–Ad, 1–Ad).
bm_dest_color: El factor de mezcla es (Rd, Gd, Bd, Ad).
bm_inv_dest_color: El factor de mezcla es (1–Rd, 1–Gd, 1–Bd, 1–Ad).
bm_src_alpha_sat: El factor de mezcla es (f, f, f, 1); f = min(Af, 1–Ad).
Por ejemplo, el modo de mezcla normal pone la fuente a bm_src_alpha y el destino a bm_inv_src_alpha. No olvides volver a poner el modo normal cuando termines porque si no los sprites y fondos se dibujarán con el nuevo modo.

SOLUCION: http://www.gmlscripts.com/forums/viewtopic.php?id=1644

5
Desarrollo de Scripts / Sombras con Particulas(cenital) 2.01
« en: Febrero 06, 2010, 01:46:03 am »
Creador: hardraid
Version GM:  :GM8: :GM7: :GM6:
Descripción: Varios de ustedes ya conocieron mi antiguo post sobre sombras con particulas pero no estaba tan afinado :P ahora aprovechando que mi post ya no esta voy a mostrar una version actualizada, requiere un solo script y no dos como el anterior, es mas rapido, y lo mas importante dibuja la sombra de los sprites animados a diferencia del anterior que era estatico. Les dejo un ejemplo adjunto.

Modificacion 2.01:Se a agregado una condición para que en los casos que el sprite no tenga velocidad, no dibuje la animacion de la sombra. lamentablemente no encontre la forma de variar la velocidad de animacion de las particulas. Tambien se a establecido una profundidad menor a la del objeto, por defecto es asi si el objeto tiene la profundidad por defecto, pero en caso contrario no, con esto se soluciona.

ATENCION: En el evento destroy colocar:
Código: [Seleccionar]
part_system_destroy(sis_sombra);//para elimianr el sistema de particulas y librar la memoria utilizada.
Tambien coloquen el codigo en el evento "End Step" despues de cualquier otra funcion.

Codigo:

Código: [Seleccionar]
//scr_sombra(alpha,escala);
//1º argumento: para ponerle la transparencia de la sombra, lo normal seria 0.5.
//2º argument2: para ponerle la escala(tamaño) de la sombra, 1 equivale al tamaño normal.
if!(variable_local_exists('sis_sombra'))//si no existe el sistema de particulas...
{
    sis_sombra=part_system_create();//creamos sistema de particulas.
    part_system_depth(sis_sombra,depth+1);//profundidad menor a la del objeto.
    sombra=part_type_create();//creamos el tipo de particula.
    emi_sombra=part_emitter_create(sis_sombra);//creamos el emisor.
}
    part_type_sprite(sombra,sprite_index,1,0,0);//la particula va a ser el sprite actual.
    part_type_color1(sombra,c_black);//indicamos color negro.
    part_type_alpha1(sombra,argument0);//indicamos transparencia
    part_type_scale(sombra,argument1,argument1);//escala un poquito mas grande q el sprite normal.
    part_type_orientation(sombra,image_angle,image_angle,0,0,0);//angulo de la particula igual al del sprite.
    if(image_speed){//si la imagen tiene velocidad...
    part_type_life(sombra,image_number,image_number);//la duracion sera igual a la duracion del sprite.
    }else{
    part_type_life(sombra,1,1);
    }
    part_type_death(sombra,1,sombra);//cuando se muere crea otra.
    sp=point_distance(xprevious,yprevious,x,y);//obtenga la velocidad en base a su posicion por steps.
    part_type_speed(sombra,sp,sp,0,0);//establecemos la velocidad.
    dir=point_direction(xprevious,yprevious,x,y);//obtenemos la direccion en base a la coordenadas de cada step.
    part_type_direction(sombra,dir,dir,0,0);//establecemos la dreccion.
    
    if(part_emitter_exists(sis_sombra,emi_sombra)){//si existe el emisor...
    part_emitter_region(sis_sombra,emi_sombra,x+2,x+3,y+2,y+3,ps_shape_rectangle,ps_distr_linear);//indicamos la region donde se crearan las particulas.
    part_emitter_burst(sis_sombra,emi_sombra,sombra,1);//iniciamos el emisor.
    part_emitter_destroy(sis_sombra,emi_sombra);//destruimso el emisor.
    }


6
Desarrollo de Scripts / posicion libre mas cercana
« en: Febrero 01, 2010, 09:15:19 pm »
Creador: HardRaid
Version GM: :GM8: :GM7: :GM6: y creo q  :GM5: por que usa 3 funciones muy basicas y viejas.
Descripcion: Este script coloca al objeto actual en la posicion libre mas cercana, para ello lo que hace es recorrer circularmente todos los puntos cuantitativamente dependiendo de la tolerancia(argument0). con este script pueden realizar colisiones perfectas, sin q se trabe en la pared o algo parecido. con respecto a la tolerancia(argument0) es opcional por lo tanto si quieren no pongan nada y el valor por defecto sera 1 que es la tolerancia mas precisa y la mas lenta, yo recomiendo que usen entre 2 y 10 dependiendo como les afecte.
Codigo:
Código: [Seleccionar]
/* argument0 es la tolerancia utilizada para aumentar o disminuir la precision
    y por consiguiente la optimizacion, un valor igual a 1 es la maxima precision
    y la mas lenta, valores superiores disminuyen la presicion pero aumenta los FPS considerablemente,
    no es necesario utilizar valores muy grandes para aumentar los FPS, con solo poner la
    tolerancia entre 2 y 10 se va a notar el cambio.
    
    scr_libre(tolerancia);*/
var ll, dd, xx, yy, tol;
ll=0;
dd=0;
xx=x;
yy=y;
if(argument0){tol=argument0;}else{tol=1;}

while (!place_free(x,y))
{
    dd+=tol;
    ll+=1/(360/tol);
    x=lengthdir_x(ll,dd)+xx;
    y=lengthdir_y(ll,dd)+yy;
}

7
Preguntas y respuestas / Problema con string del nombre de sprite
« en: Enero 29, 2010, 09:55:32 pm »
Bueno tengo un problema que por lo visto no le encontre solucion:
resulta que tengo el nombre de un sprite dentro de una cadena y no se como sacarle el indice para oder asignarselo al sprite_index.

8
Preguntas y respuestas / sombra juego etrategia T.R.
« en: Noviembre 28, 2009, 01:42:02 am »
Como hago para crear la sombra que hay en los juegos de estrategia, como age of empire, ris of nations, etc. para que no sea vea el mapa, yo vi tyranus(creo) hizo un juego, q creo q es el del ciego  XD donde hay como uan sombra que se va descubriendo. desde ya muchas gracias.

Páginas: 1