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!
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?
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)
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.
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
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...
en el bennupack lo consigues...
Medium Examples\Effects\Shadows
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 =)
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
Esto me interesa. ¿Hay alguna función o valor para difuminar esa sombra?
el modulo effects y los alphas y los blend no estarian mal echarle un ojo.
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.
Vale gracias Splinter, ya vi el BLUR. ¿Funciona tambien en 32 bits?
las funciones del mod_effect, por ahora solo 1,8,16 bits... pero creo que las puedo poner facil a 32bits.
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
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.
jeje. Karma Splinter!
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?
Tienes razon Trecek ... pero flags es variable local xD ... pero si .. es como tu dices
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
Splinter, ¿hay alguna forma de hacer que la replica (sombra) sea en 16bits aunque el original sea en 32 para poder aplicarle un BLUR?
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.
Con new_map, map_put_pixel, map_get_pixel y graphic_info tienes esa función en apenas 12 líneas de código.
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.
¿puede precalcularse antes del nivel para cualquier proceso?,eso parece buena idea
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