Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Kuroh en Mayo 22, 2010, 02:10:15 AM

Título: Efecto de dia y noche?
Publicado por: Kuroh en Mayo 22, 2010, 02:10:15 AM
Creo q este es un tema que le puede intersar a muchos ( y a mi), y es, como hacer un efecto de dia y de noche?
o, como cambiar los colores del background poco a poco, no de manera
repentina.


Yo trate de hacer este efecto con tan solo 4 colores:
-dia
-anochecer
-noche
-amanecer, y denuevo dia

pero me quedo muy repentino el cambio de colores,
asi q i algien sabe hacerlo con un codigo o algo que haga q un color vaya cambiando de a poco, que me lo explique!  :-[
gracias de antemano!!  :D :D :D :D
Título: Re: Efecto de dia y noche?
Publicado por: cristalbeast en Mayo 22, 2010, 03:02:13 AM
mmmm... pues aun no lo he aplicado pero esta es mi idea que pensaba usar en mi juego.

En el evento step de un objeto que sea permanente, dibujar 2 rectangulos de diferentes colores y de diferente alpha al mismo tiempo.

Un rectangulo azul o negro(efecto de noche)
Un rectangulo amarillo o rojo(efecto de d?a)

Los rect?ngulos solo se dibujan del tama?o del view.

Y por ejemplo, si te basas en la hora de la PC puedes utilizar current_hour
No lo he probado pero creo que basta con poner:

if(current_hour<=12)
   {
   draw_set_alpha(current_hour*.041)
   }
else
   {
   draw_set_alpha(0.5-(current_hour-12*.041))
   }
draw_rectangle_color(view_xview,view_yview,view_hview,view_wview,c_black,c_black,c_black,c_black,false)


if(current_hour>=12)
   {
   draw_set_alpha(current_hour-12*.041)
   }
else
   {
   draw_set_alpha(0.5-(current_hour*.041))
   }
draw_rectangle_color(view_xview,view_yview,view_hview,view_wview,c_orange,c_orange,c_orange,c_orange,false)
draw_set_alpha(1)


Si te funciona y quieres modificarlo para acoplarlo a tu proyecto, dime para explicartelo (si no le entiendes).
Título: Re: Efecto de dia y noche?
Publicado por: elviskelley en Mayo 22, 2010, 03:14:36 AM
usa un sprite con varias subimagenes, y que la scala del sprite sea 5, image_xscale=5; image_yscale=5; y la transparencia sea 0.3 image_alpha=0.3; y que tenga un valor negativo muy alto -99999 depth=-99999; que la velocidad de cambio de sub imagenes sea de 0, image_speed=0;  y ahora segun las condiciones de la hora de cambio sea por la hora de la pc, o alguna que establescas, solo cambias de sub imagen. image_index=1;
Título: Re: Efecto de dia y noche?
Publicado por: Kuroh en Mayo 22, 2010, 05:50:55 PM
no se mucho de scripts, pero no se podria hacer sin la hora del PC, si no con un tiempo inventado en el juego (ej: 2 min cada dia)???

gracias por responder
Título: Re: Efecto de dia y noche?
Publicado por: J-Dek en Mayo 22, 2010, 06:37:55 PM
Aprovecho para decir que esto me interesa a mi tambi?n, a ver si alguien responde^^
Título: Re: Efecto de dia y noche?
Publicado por: Texic en Mayo 22, 2010, 07:40:33 PM
Copien esto en el draw de un objeto con depth -99999 o similar
if current_hour<17 and current_hour>7
{
color=make_color_hsv(170,230,150)
if current_hour=8 {color=make_color_hsv(170,230,40)}
if current_hour=9 {color=make_color_hsv(170,230,80)}
if current_hour=10 {color=make_color_hsv(170,230,120)}
if current_hour=11 {color=make_color_hsv(170,230,140)}
if current_hour=13 {color=make_color_hsv(170,230,140)}
if current_hour=14 {color=make_color_hsv(170,230,120)}
if current_hour=15 {color=make_color_hsv(170,230,80)}
if current_hour=16 {color=make_color_hsv(170,230,40)}
draw_set_blend_mode(bm_subtract)
draw_set_color(color)
draw_rectangle(0,0,room_width,room_height,0)
draw_set_blend_mode(bm_normal)
}
else
{
color=make_color_hsv(30,200,200)
if current_hour=17 {color=make_color_hsv(30,200,0)}
if current_hour=18 {color=make_color_hsv(30,200,40)}
if current_hour=19 {color=make_color_hsv(30,200,80)}
if current_hour=20 {color=make_color_hsv(30,200,120)}
if current_hour=21 {color=make_color_hsv(30,200,160)}
if current_hour=3 {color=make_color_hsv(30,200,160)}
if current_hour=4 {color=make_color_hsv(30,200,120)}
if current_hour=5 {color=make_color_hsv(30,200,80)}
if current_hour=6 {color=make_color_hsv(30,200,40)}
if current_hour=7 {color=make_color_hsv(30,200,0)}
draw_set_blend_mode(bm_subtract)
draw_set_color(color)
draw_rectangle(0,0,room_width,room_height,0)
draw_set_blend_mode(bm_normal)
}

Es lo que pude hacer, si quieren lo modifican, si les parece muy brusco el cambio
Saludos
Suerte
Título: Re: Efecto de dia y noche?
Publicado por: Kuroh en Mayo 23, 2010, 08:47:57 AM
me gusto mucho el efecto, pero no sabes como hacerlo con steps del game maker, osea, q no coincida con la hora real, si no q cada dia y noche duren mucho menos (ejemplo 2 minutos  XD) ??

gracias por el script de todas formas  ;) ;) ;) ;) ;) ;) ;) ;)
Título: Re: Efecto de dia y noche?
Publicado por: Killer en Mayo 23, 2010, 06:22:21 PM
?Recuerdas cuando el profe de mate te dijo que alg?n d?a necesitarias lo que te estaba ense?ando?

2 minutos = 120 segundos
1 d?a = 24 hora

120/24 = 5

1 dia en 2 minutos = 1 hora en 5 segundos

Simplemente crea una variable donde tener la hora, modificala cada 5 segundos y usala en lugar de current_hour.
Título: Re: Efecto de dia y noche?
Publicado por: Alfonsos1 en Mayo 23, 2010, 06:56:07 PM
por que no creas tu propia variable que represente el tiempo?

que aumente en uno por step
Título: Re: Efecto de dia y noche?
Publicado por: Kuroh en Mayo 23, 2010, 11:17:40 PM
WOW! no se me habia ocurrido, y si, si me acuerdo cuando el profe me decia eso  XD XD XD.
bueno, el script me funciono perfecto , me encanto el resultado, a si que gracias a todos los q aportaron!!!   :-[