He imaginado como seria vería ver toda una habitación con la variable de opacidad, esta característica no aparecía en un Shaders de GM:S, el cual tenia múltiples efectos llamativos, pero como ya he mencionado, este no estaba en la lista, tomando en cuenta que tengo tiles y muchos objetos de distinto tipo en una habitación, seria engorro ir 1 por 1 dándole opacidad, ademas que es un efecto que solo estará presente en una habitación de las decenas que hay, digamos que es una habitación especial a la que llamo "zona fantasma", es el nombre mas original que me pude inventar por evidentes razones :D, al igual que otros efectos creados, el área de acción es toda la vista/habitación del juego.
no entendí nada.
Y si haces algo como:
with(all)
image_alpha = 0.5;
Este codigo dentro del create de un objeto controlador en la room.
Cita de: romon_28 en Septiembre 05, 2017, 02:55:31 PM
no entendí nada.
Se resumen en que todo lo que el jugador ve es trasparente, como una ventana.
Cita de: bochaPastore en Septiembre 05, 2017, 03:09:00 PM
Y si haces algo como:
with(all)
image_alpha = 0.5;
Este codigo dentro del create de un objeto controlador en la room.
No esta mal, pero hay objetos que ignoran el controlador de opacidad.
(https://i.gyazo.com/8d172a47fedc19308f71f1195e92863f.gif)
Se puede apreciar que el jugador es trasparente y los poderes, pero los candados, llave, murallas entre otros, continúan con su estado normal de opacidad.
El nivel no se genera de forma aleatoria o si?
Cita de: bochaPastore en Septiembre 05, 2017, 08:35:25 PM
El nivel no se genera de forma aleatoria o si?
Todos los niveles tienen un diseño ya definido, por lo que siempre sera igual para todos.
Proba con esto entonces:
with(all)
draw_set_alpha(0.5);
Cita de: bochaPastore en Septiembre 05, 2017, 09:41:29 PM
Proba con esto entonces:
with(all)
draw_set_alpha(0.5);
No pasa nada, todo esta en su estado normal, por el momento el código anterior funciona a medias, pero este es como si no existiera en la habitación, pero hay merito en que lo intenta :).
(https://i.gyazo.com/1a36753357d730a8f0540aaaaf2c5b3b.gif)
y si pones ese codigo que te dieron en el evento step del controlador para que se ejecute constantemente? talvez pase algo con el create
Cita de: cristopher2545 en Septiembre 05, 2017, 11:47:52 PM
y si pones ese codigo que te dieron en el evento step del controlador para que se ejecute constantemente? talvez pase algo con el create
Negativo, esta en create, pero a pesar de que lo coloque en step, draw y otros eventos, el código seguirá sin hacer ningún efecto en la habitación, el otro funcionaba, pero a medias :-\, aun tengo esperanza en crear una habitación fantasma (trasparente) ;).
es extraño lo probé en mi proyecto y funciono tienes algun codigo en alguno de esos bloques que interfiera con el alpha? porque si en unos funciona y en otros no eso quiere decir que algo esta interfiriendo no crees?
El problema es que las instancias que tienen una animación de oscilación se dibujan con un script, debes modificar el script para que se pueda indicar el nivel de opacidad.
Cita de: cristopher2545 en Septiembre 06, 2017, 12:09:43 AM
es extraño lo probé en mi proyecto y funciono tienes algun codigo en alguno de esos bloques que interfiera con el alpha? porque si en unos funciona y en otros no eso quiere decir que algo esta interfiriendo no crees?
ningún objeto tiene opacidad, salvo el efecto de luz que esta a la mitad, pero se ve que los poderes si les afectaba la opacidad a pesar de estar bajo la sombra de la luz.
Cita de: Clamud en Septiembre 06, 2017, 01:24:35 AM
El problema es que las instancias que tienen una animación de oscilación se dibujan con un script, debes modificar el script para que se pueda indicar el nivel de opacidad.
No hay ningún solo script en este proyecto de experimentos, todos los objetos tienen sus propios códigos sin depender de un externo, el obj_Pared tiene.
///////////////////////////////////////CREATE
///Variables
angulo=0
amplitud=10
b=10
/////////////////////////////////////////DRAW
///Efecto distorcion
//amplitud=argument0
//b=argument1
for(i=0; i<=sprite_height; i=i+1)
{
draw_sprite_part(sprite_index,0,0,i,sprite_width,1,x+sin((angulo+i)/b)*amplitud,y+i)
}
angulo+=2
Como ya he dicho, no existe ningún script :-\, ademas ¿como explicas que los candados y llaves estén enteros? están quietos hasta que el jugador los toma, pero no tienen oscilación y aun así ignoran la opacidad.
Cambia draw_sprite_part por draw_sprite_part_ext donde se puede controlar la opacidad/transparencia.
Cita de: Clamud en Septiembre 06, 2017, 02:08:32 AM
Cambia draw_sprite_part por draw_sprite_part_ext donde se puede controlar la opacidad/transparencia.
En ninguna parte existe esa función
obj_Cuarto_Trasparente
//////////////////////////////STEP
///Trasparencia
with(all)
draw_set_alpha(0.3);
Probablemente este hablando del código de la pared.
///Efecto distorcion
//amplitud=argument0
//b=argument1
for(i=0; i<=sprite_height; i=i+1)
{
draw_sprite_part(sprite_index,0,0,i,sprite_width,1,x+sin((angulo+i)/b)*amplitud,y+i)
}
angulo+=2
No me interesa la opacidad de la pared, ya que es solo 1 de todos los objetos de distinto tipo que hay, quiero hacer que la habitación tenga opacidad en todo lo que tenga, de hecho es lo que llevo diciendo desde que empece en este post :-\, parece que es un elemento mas complejo que colocar unas pocas lineas de código.
¿Incluyendo backgrounds y tilesets?
Cita de: NiuWeb en Septiembre 06, 2017, 03:34:14 AM
¿Incluyendo backgrounds y tilesets?
Desde el comienzo mencione que los sprite, dibujos, objetos, backgrounds y tiles, al menos en forma general, ya que es un todo, la idea es que este cuarto tenga un aspecto que sea único, por dar unos ejemplos, tengo un cuarto donde todo tiene un color invertido, uno donde todo rota, otro donde todo esta de cabeza (180 grados), así como otro donde hay oscuridad absoluta y el jugador tiene una linterna, como puede apreciar todos los anteriormente mencionados los he logrado gracias a que la comunidad me ayudo a buscar los errores de mis códigos, hasta el momento mi código de origen solo hace invisible algunos elementos y no todos :-\, razón por la que arme este post.
Mira, lo q dijo Clamud es que reemplaces el draw_sprite_part por draw_sprite_part_ext, ya que con la funcion draw_sprite_part no podes manejar la opacidad de los objetos. La cuestión es q tenes q reemplazarlo en todos los objetos que no se transparentan para que funcionen.
Saludos.
Cita de: bochaPastore en Septiembre 06, 2017, 01:40:26 PM
Mira, lo q dijo Clamud es que reemplaces el draw_sprite_part por draw_sprite_part_ext, ya que con la funcion draw_sprite_part no podes manejar la opacidad de los objetos. La cuestión es q tenes q reemplazarlo en todos los objetos que no se transparentan para que funcionen.
Saludos.
¿Entonces debo asumir que no es posible crear un objeto controlador, para que toda la habitación sea trasparente? tomando en cuenta que una habitación del juego real tiene un largo de 13.000 a 20.000 y como 1.000 de alto, hay tantos objetos distintos y tiles, que va a convertirse en un factor de problemas, mas que una mecánica de innovación :-\.
Cosas como esta se deben planear desde el principio, para evitar que se vuelvan complicadas.
Puedes usar un código como el que se mostró anteriormente [gml]with( all )image_alpha = valor;[/gml] después usar la variable image_alpha como argumento de la función draw_sprite_part_ext
Cita de: Clamud en Septiembre 07, 2017, 04:00:27 AM
Cosas como esta se deben planear desde el principio, para evitar que se vuelvan complicadas.
Puedes usar un código como el que se mostró anteriormente [gml]with( all )image_alpha = valor;[/gml] después usar la variable image_alpha como argumento de la función draw_sprite_part_ext
Si lo miro de un punto de vista mas creativo, que el jugador sea trasparente ya seria un reto a la vista, incluso si lo creo aun mas trasparente, tal vez debería dar este tema como acabado, ya que como usted dice, esto se debió planear desde un principio :-\, ademas este pequeño tema si que se ha ampliado mucho :o, mas de lo necesario :-[.