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
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).
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;
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
Aprovecho para decir que esto me interesa a mi tambi?n, a ver si alguien responde^^
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
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 ;) ;) ;) ;) ;) ;) ;) ;)
?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.
por que no creas tu propia variable que represente el tiempo?
que aumente en uno por step
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!!! :-[