Bennu Game Development

Foros en Español => Mesa de Ayuda => Topic started by: Gorak on June 14, 2011, 09:48:21 AM

Title: Proceso sombra
Post by: Gorak on June 14, 2011, 09:48:21 AM
Hola soy semi-nuevo en Bennu y quiero hacer un proceso sombra.
La idea es que haga una replica del proceso, lo ponga en negro, le de la vuelta, lo deforme un poco
para que parezca una sombra y que se quede con bastante transparencia y difuminación.

:P no se como hacerlo.

Un saludo!
Title: Re: Proceso sombra
Post by: Yawin on June 14, 2011, 10:09:40 AM
la sombra que quieres hacer no puede estar en el propio gráfico del personaje??
O requiere un proceso sólo para él, ya que va a tener un movimiento independiente?
Title: Re: Proceso sombra
Post by: KeoH on June 14, 2011, 12:10:11 PM
Bomberlink hizo para su SORR unas sombras y reflejos de los personajes bastante wapos creo recordar .. a ver si se pasa y nos ilumina xD (y ya de paso q comparta el código para propósitos educativos xD)
Title: Re: Proceso sombra
Post by: FreeYourMind on June 14, 2011, 01:38:00 PM
Esperar sentados hahahah. La sombra la puedes hacer con un proceso hijo que obtenga el grafico del padre donde despues aplicas los efectos, por ejemplo distorsion, cambio de color, transparencias, etc.
Title: Re: Proceso sombra
Post by: HenBanKeN on June 14, 2011, 01:51:15 PM
Estoy de acuerdo con FreeYourMind. Lo que yo haría sería que el proceso sombra fuera llamado dentro del personaje, y que heredara el gráfico del father.

Por ejemplo, si haces:

graph=father.graph;

Ese proceso dejaria al proceso sombra igual al de tu personaje.
Luego, deberías jugar con la variable "flags" que es la que logra varios efectos de los que tú necesitas.

Trata de aprender a usar los diversos valores que puede tomar flags, y luego será pan comido, supongo xD
Title: Re: Proceso sombra
Post by: FreeYourMind on June 14, 2011, 01:58:56 PM
No no, no te lies :)
El grafico del padre no lo tienes que tocar, es el grafico del proceso hijo...

graph = father.graph;

y ya le deslocas la posicion YY y aplicas los efectos que creas necesarios para hacer una sombra chula...
Title: Re: Proceso sombra
Post by: l1nk3rn3l on June 14, 2011, 02:59:31 PM
en el bennupack lo consigues...

Medium Examples\Effects\Shadows
Title: Re: Proceso sombra
Post by: HenBanKeN on June 14, 2011, 04:13:14 PM
Quote from: FreeYourMind on June 14, 2011, 01:58:56 PM
No no, no te lies :)
El grafico del padre no lo tienes que tocar, es el grafico del proceso hijo...

graph = father.graph;

y ya le deslocas la posicion YY y aplicas los efectos que creas necesarios para hacer una sombra chula...

Ea, toda la razón xD me he confundido. Editaré para no provocar confusiones a los demás =)
Title: Re: Proceso sombra
Post by: Drumpi on June 14, 2011, 07:40:19 PM
Leer documentación sobre:
-Variable local predefinida FLAGS.
-Variable local predefinida SIZE_Y.
-Variable local predefinida ALPHA.
Y lo ya mencionado más arriba ;D
Title: Re: Proceso sombra
Post by: peterpollito on June 14, 2011, 07:51:19 PM
Esto me interesa. ¿Hay alguna función o valor para difuminar esa sombra?
Title: Re: Proceso sombra
Post by: SplinterGU on June 14, 2011, 07:59:39 PM
el modulo effects y los alphas y los blend no estarian mal echarle un ojo.
Title: Re: Proceso sombra
Post by: La momia que fuma on June 14, 2011, 08:05:29 PM
Para eso usa alpha

alpha=0-gráfico invisible

alpha=255-gráfico normal

Aun así tampoco hay 255 grados de transparencia de entrada, creo son 16, esto lo puedes configurar con la variable global alpha_steps si quieres mas (a cambio creo que el juego coge un poco mas de RAM para calcular estos grados de transparencia)

También tienes la solución bastante mas simple de flags=4, que pone transparencia del 50%

A lo de graph=father.graph; añadamos graph=father.flags+2; para que te aparezca el gráfico invertido, o graph=father.flags+6; para que aparezca invertido+transparente al 50%

Para cambiar el color, mirate las funciones de blendop en la wiki, te serán muy útiles, aunque según como lo uses, es incompatible con cosas como alpha y no recuerdo si con flags 4 también (Aunque hay apaños). Otra modo para el color sería usar un fpg de 8 bits para el personaje (para un solo personaje suele ser mas que suficiente con 256 colores) y jugar con la paleta en el proceso de sombra.

Con size_y como sugiere drumpi, puedes deformar la imagen a lo alto, pero como apunte, recomendaría que el centro del personaje (Punto de control 0) este en la base del gráfico, en el punto en que los pies tocan el suelo y por lo tanto la sombra, te ahorrara quebraderos de cabeza a la hora de colocar la sombra.
Title: Re: Proceso sombra
Post by: peterpollito on June 14, 2011, 09:09:56 PM
Vale gracias Splinter, ya vi el BLUR. ¿Funciona tambien en 32 bits?
Title: Re: Proceso sombra
Post by: SplinterGU on June 15, 2011, 02:02:14 AM
las funciones del mod_effect, por ahora solo 1,8,16 bits... pero creo que las puedo poner facil a 32bits.
Title: Re: Proceso sombra
Post by: Windgate on June 15, 2011, 09:10:39 AM
Quote from: SplinterGU on June 15, 2011, 02:02:14 AM
las funciones del mod_effect, por ahora solo 1,8,16 bits... pero creo que las puedo poner facil a 32bits.

Ahí llegaría el karma, creo que peterpollito quiere darle un uso muy lujurioso a esa función para hacer unas sombras todo guapas xD
Title: Re: Proceso sombra
Post by: SplinterGU on June 15, 2011, 02:15:06 PM
va a tardar un tiempito, porque ando corto de tiempo, pero bueno, ahi estara... por lo pronto que vaya adelantando su proyecto en otros puntos.
Title: Re: Proceso sombra
Post by: peterpollito on June 16, 2011, 08:45:48 AM
jeje. Karma Splinter!
Title: Re: Proceso sombra
Post by: Trecek on June 16, 2011, 08:10:56 PM
QuoteA lo de graph=father.graph; añadamos graph=father.flags+2; para que te aparezca el gráfico invertido, o graph=father.flags+6; para que aparezca invertido+transparente al 50%

Pregunta: si flags es una variable global, no debiera de ser "FLAGS=father.flags+2; para que te aparezca el gráfico invertido" en lugar de "GRAPH=father.flags+2; para que te aparezca el gráfico invertido" ?? o hay algo aqui que no entiendo?
Title: Re: Proceso sombra
Post by: KeoH on June 16, 2011, 08:48:37 PM
Tienes razon Trecek ... pero flags es variable local xD ... pero si .. es como tu dices
Title: Re: Proceso sombra
Post by: La momia que fuma on June 17, 2011, 12:47:32 AM
Quote from: Trecek on June 16, 2011, 08:10:56 PM
QuoteA lo de graph=father.graph; añadamos graph=father.flags+2; para que te aparezca el gráfico invertido, o graph=father.flags+6; para que aparezca invertido+transparente al 50%

Pregunta: si flags es una variable global, no debiera de ser "FLAGS=father.flags+2; para que te aparezca el gráfico invertido" en lugar de "GRAPH=father.flags+2; para que te aparezca el gráfico invertido" ?? o hay algo aqui que no entiendo?

Cierto, cierto, metedura de pata mia xD
Title: Re: Proceso sombra
Post by: peterpollito on June 17, 2011, 05:34:59 PM
Splinter, ¿hay alguna forma de hacer que la replica (sombra) sea en 16bits aunque el original sea en 32 para poder aplicarle un BLUR?
Title: Re: Proceso sombra
Post by: SplinterGU on June 17, 2011, 07:21:09 PM
hacer un mapa de 16bits a partir de uno de 32bits, no lo podes hacer de forma automatica, tendras que hacerlo a mano, recorriendo pixel a pixel.
Title: Re: Proceso sombra
Post by: Windgate on June 21, 2011, 11:43:12 AM
Con new_map, map_put_pixel, map_get_pixel y graphic_info tienes esa función en apenas 12 líneas de código.
Title: Re: Proceso sombra
Post by: SplinterGU on June 21, 2011, 01:29:36 PM
Quote from: Windgate on June 21, 2011, 11:43:12 AM
Con new_map, map_put_pixel, map_get_pixel y graphic_info tienes esa función en apenas 12 líneas de código.

sin dudas, aunque un poco lenta me temo, pero si son para precalcular antes de iniciar el nivel, entonces va a ir bien.
Title: Re: Proceso sombra
Post by: peterpollito on June 21, 2011, 08:36:08 PM
¿puede precalcularse antes del nivel para cualquier proceso?,eso parece buena idea
Title: Re: Proceso sombra
Post by: Trecek on June 22, 2011, 11:15:02 PM
QuoteKeoH:Tienes razon Trecek ... pero flags es variable local xD ... pero si .. es como tu dices
Local, cierto, gracias keoh, repasare ese tema

QuoteLa momia que fuma: Cierto, cierto, metedura de pata mia xD
No es por tocar las narices con cualquier despiste tonto, es sencillamente que acabo de empezar con este lenguaje y aun no se muy bien por donde me da el aire, asi que ante la duda de que las familias de procesos funcionen de otra forma, yo pregunto. Gracias por contestar momia