Bennu Game Development

Foros en Español => Mesa de Ayuda => Topic started by: peterpollito on November 02, 2011, 09:25:26 PM

Title: Sombra dinamica
Post by: peterpollito on November 02, 2011, 09:25:26 PM
Estamos aqui discutiendo como hacer un proceso sombra...
De esto hable hace un tiempo pero no consigo encontrar el post, sorry.
Bueno, la idea es poder aplicar una sombra a cualquier proceso (imagen o animacion), por ejemplo a un personaje, un arbol o un arbusto.

La cuestión es que hemos pensado en hacer un clon del proceso y aplicarle efectos.
La cuestión es que el proceso original será 32bits, la sombra en 16bits...para eso tenemos un codigo de Prg que lo hace.
Ahora se plantea el problema aplicarle el angulo y lo chungo, ponerla en negro y luego el alpha.


¿Se puede hacer y que rinda bien?

Es que otra opción es hacer fpgs a 8 bits y ya esta, pero no es lo mismo...

Un saludo!
Title: Re: Sombra dinamica
Post by: josebita on November 02, 2011, 10:20:41 PM
Para lo de ponerla en negro y el alfa podeis usar la mod_effects.
Yo para mi karaoke creé una rutina que hace una sombra de 32 bits en la que el alfa va aumentando, igual os vale pra algo:
http://code.google.com/p/bennugd-karaoke/source/browse/trunk/inc/misc.inc#353

Aunque claro, mis reflejos no eran dinámicos...
Title: Re: Sombra dinamica
Post by: KeoH on November 02, 2011, 11:46:07 PM
para la forma del clon podeis probar a hacer un size_y=10 y size_x=110 por ejemplo xD a ver q sale xD
Title: Re: Sombra dinamica
Post by: Outlaw on November 03, 2011, 06:19:51 AM
Hola PeterPollito, yo hice una sombra que aplico a todos los procesos que se muevan (por el momento) por ejemplo, personajes y enemigos. Te paso el codigo:


[/code]



// este proceso lo que hace es agregarse a todo proceso que se mueva, por ejemplo prota
// para luego generar a partir del graph del padre (el que lo llama) una sombra que
// lo sigue a todos lados, porque eso es lo que las sombras hacen ¿no? XD
// el único parámetro que necesita es el archivo del proceso que lo invoca
Process Sombra(file)
Private
   int x_objetivo;
   int y_objetivo;
   int ancho_mapa,alto_mapa;
End
Begin
   region=0;
   ctype=c_scroll;
   z=father.z+1;
   alpha=120;
   Repeat
      graph=map_clone(file,father.graph);
      ancho_mapa=map_info(file,graph,g_width);
       alto_mapa=map_info(file,graph,g_height);
      For(x_objetivo=0;x_objetivo <= ancho_mapa;x_objetivo++)
         For(y_objetivo=0;y_objetivo <= alto_mapa;y_objetivo++)
            If(Map_get_pixel(file,graph,x_objetivo,y_objetivo) <> rgba(0,0,0,0))
               Map_put_pixel(file,graph,x_objetivo,y_objetivo,rgba(1,1,1,255));
            End
         End
      End
      angle=father.angle; 
      x=father.x-5;
      y=father.y;
      Frame;
   Until(not(exists(father)))
End





Lo que hice en una version mas avanzada del programa (que tengo en la netbook!!) es: que a la x del proceso se le resta una cantidad distinta, segun de donde venga el sol hipotetico del escenario, entonces, se hace un switch, y se define una variable cuando se lo llama al proceso, con una constante que sea: mañana - tarde - noche. Segun cada constante se le va a indicar cuanto restar de x o de y, etc. Y tambien hice un par de cosas para convertir el angulo a valores entre 0 y 360, el viernes si puedo te lo subo, obvio, si es que te interesa! saludos!
Title: Re: Sombra dinamica
Post by: Drumpi on November 04, 2011, 08:32:51 PM
El ángulo, quieres decir hacer que se incline ¿no? eso me temo que tendrías que copiar el mapa línea por línea. Lo de Alpha está claro.
Lo de ponerlo en color negro, no se si RGBSCALE puede servirte para lo que necesitas, he experimentado demasiado poco con ella para decirte si te vale o no.
Title: Re: Sombra dinamica
Post by: La momia que fuma on November 07, 2011, 03:53:10 PM
Yo también pensaba que rgbscale podía ser la solución, pero creo que no va en 32 bits...igual no la he usado bien y metí la pata en algo, pero probe a 16 y ahi si funcionaba.
Title: Re: Sombra dinamica
Post by: SplinterGU on November 07, 2011, 04:05:10 PM
si va en 32 bits... (en la ultima version)
Title: Re: Sombra dinamica
Post by: La momia que fuma on November 09, 2011, 12:40:06 AM
Genial!  ;D


Pero acabo de probar otra vez bajando los últimos binarios para windows y no va, quizá los de la última versión aun no estan compilados para Windows?


(La versión que bajé dice RC27(r270), no se si es realmente la última)
Title: Re: Sombra dinamica
Post by: SplinterGU on November 09, 2011, 12:48:45 AM
es esa, y si estan...

pone el ejemplo que decis no te funciona.
Title: Re: Sombra dinamica
Post by: La momia que fuma on November 09, 2011, 08:26:03 PM
Aqui va, son dos prgs practicamente idénticos, la única diferencia es que uno hace el set_mode en 32 bits y carga un fpg de 32 bits, y el otro lo hace todo en 16.


Le hago un rgbscale (Oscurecer a la mitad) al gráfico del ratón y en 16 funciona, pero en 32 no...


(He probado por curiosidad, a hacer el rgbscale en modo 32 bits pero con un gráfico en 16...modifica la imágen, pero de forma incorrecta, los colores salen como corruptos)
Title: Re: Sombra dinamica
Post by: SplinterGU on November 09, 2011, 08:53:52 PM
pues a mi me funciona perfecto...

voy a probar con la version windows, pero la version linux va de perlas.
Title: Re: Sombra dinamica
Post by: SplinterGU on November 09, 2011, 08:56:40 PM
en windows no funciona, voy a regenerar, quizas empaquete los binarios viejos... diablos!

edit: es correcto, empaquetado erroneo... diablos!
Title: Re: Sombra dinamica
Post by: FreeYourMind on November 09, 2011, 09:01:50 PM
(http://www.everydaynodaysoff.com/wp-content/uploads/2009/12/HomerFacePalm.jpg)
Title: Re: Sombra dinamica
Post by: SplinterGU on November 09, 2011, 09:06:47 PM
subiendo binarios correctos... habia armado el paquete con los binarios viejos... incluso creo que la version anterior tampoco era nueva, era anterior a la anterior...

ninguna de las release con crosscompiler salieron... :(

gracias momia, por avisar del fallo.
Title: Re: Sombra dinamica
Post by: La momia que fuma on November 09, 2011, 09:29:29 PM
Me alegro de haber ayudado  :)
Title: Re: Sombra dinamica
Post by: SplinterGU on November 09, 2011, 09:53:14 PM
probalo y decime como funciona.
Title: Re: Sombra dinamica
Post by: La momia que fuma on November 14, 2011, 04:57:47 PM
Bueno, ya le conte a splinter por messenger y me olvidé de este hilo, pero para el que le interesé saberlo, ahora ya funciona de lujo también en windows :P
Title: Re: Sombra dinamica
Post by: peterpollito on November 14, 2011, 08:09:24 PM
weeeeeeeeeeeeeeeeeeeeee
Title: Re: Sombra dinamica
Post by: peterpollito on December 02, 2011, 10:24:04 AM
La sombra dinamica va como queremos pero al aplicarle
el blur ninguna de las opciones difumina el objeto hacia afuera, solo
hacia adentro y nos gustaria difuminar los bordes de sierra.

Splinter, ¿Se puede añadir esa opcion sin mucho dolor de cabeza
para hacerlo o costaria mucho?

Un saludo
Title: Re: Sombra dinamica
Post by: SplinterGU on December 02, 2011, 01:44:37 PM
imagino que hablas de 32 bits...

el tema es que estas funciones fueron pensadas para 16 bits, donde no hay alpha... por ende no se puede difumar un alfa que no existe...

y con filter?

igual lo agrego a pendientes, ahora mismo estoy con el manejador de errores para atrapar division por cero, segment violation y todos los errores de este estilo que se puedan atrapar.
Title: Re: Sombra dinamica
Post by: La momia que fuma on December 04, 2011, 05:47:59 PM
Quote from: SplinterGU on December 02, 2011, 01:44:37 PMy con filter?


Como funciona? Aun no esta documentado en la wiki...
Title: Re: Sombra dinamica
Post by: peterpollito on January 13, 2012, 12:27:09 AM
terminado. cerramos hilo
Title: Re: Sombra dinamica
Post by: SplinterGU on January 13, 2012, 04:41:54 AM
me alegro...
Title: Re: Sombra dinamica
Post by: peterpollito on January 13, 2012, 07:10:04 PM
Queda muy bien. Gracias a todos por la colaboración especialmente a Splinter por su ayuda y su paciencia. Karma++
Title: Re: Sombra dinamica
Post by: SplinterGU on January 13, 2012, 07:56:59 PM
de nada, un placer...