hola a todos, les queria preguntar cómo se puede hacer una camara lenta para un juego en 2d tipo... no se, una camara lenta, sin perder frames per second, porque yo probé bajando los steps, pero asi tambien se bajan los fps... :-\ gracias de antemano
Lo unico que se me ocurre es bajando la velocidad de los objetos, lo que seria mucho trabajo si tienes muchos, pero seria asi:
En un evento en el que haya movimiento, por ej. presionar la flecha izquierda seria:
x-=3*global.velocidad
Por defecto global.velocidad seria 1, pero al ponerse en camara lenta lo pones a 0.5 por ejemplo.
Entonces en todos los lugares en donde muevas algo deberias agregar "*global.velocidad"
Quizas haya una DLL, no se
evento step end:
if camara_lenta
{
sleep(100);//100 indica la velosidad de frenado
}
la variable "camara_lenta" tenes que crearla
si camara_lenta=0 anda normal
si camara_lenta=1 anda lento
Cita de: romon_28 en Febrero 21, 2012, 04:13:41 PM
if camara_lenta
{
sleep(100);//100 indica la velosidad de frenado
}
La idea esta buena, pero te va a generar bug o fallos en el gameplay. Ya que en esos 100ms nada va a responder.
La mejor opcion es agregar.
La mejor forma, pero la mas trabajosa, es bajar la velocidad de cada objeto por si mismo. Ya que si lo haces por un parent o usando "all" todos se van a poner con la misma velocidad.
Pero la respuesta de Romon_28 no seria lo mismo que bajar la room_speed? porque se pierden fps
Ah, se me ocurrio algo gracias a MaanuRP
Hacer que todos se les baje la velocidad con
all.speed/=2
Pero daria problemas cuando los objetos se aceleren por si mismo, por eso prefuero mi primera respuesta
Cita de: Mgbu en Febrero 21, 2012, 05:31:34 PM
all.speed/=2
Como dije antes, esto no sirve. Ya que antes de dividir, iguala todas las velocidades de los objetos. Por lo que todos terminan con la misma velocidad y, en vez de verse en camara lenta, se ven todas las instancias a la misma velocidad.
Cita de: MaanuRP en Febrero 21, 2012, 05:53:22 PM
Cita de: Mgbu en Febrero 21, 2012, 05:31:34 PM
all.speed/=2
Como dije antes, esto no sirve. Ya que antes de dividir, iguala todas las velocidades de los objetos. Por lo que todos terminan con la misma velocidad y, en vez de verse en camara lenta, se ven todas las instancias a la misma velocidad.
MannuRP tiene razón, esto "all.speed/=2" cambia la velocidad de todos los objetos a la velocidad del objeto con mayor depth y menor id entre 2.
Para cambiar la velocidad de todos puedes hacerlo así.
with(all){
speed/=2;
}
Aunque en lo personal lo que yo haria es hacer a todos mis objetos móviles partientes de un "obj_movil" y crearles una variable llamada "vel" o usar la misma variable speed de gm, y bueno para bajar la velocidad simplemente escribes.
with(obj_movil){
vel/=2;
//o
speed/=2;
}
De ese modo puedes hacer que algunos objetos no se hagan lentos, pero como quieras.
ok gracias a todos!!