Discuss Scratch

angadid303
Scratcher
2 posts

Existe una alternativa funcional al bloque de esperar x segundos en bucles?

Trataré de explicar lo mejor posible. Estoy haciendo un sistema de energía para un juego que estoy haciendo.
Mas o menos funciona así:
Existen varios objetos que se supone que consumen energía, sin embargo, no todos siempre están activos. Entonces, mi idea de la energía (la cual es una variable que empieza en 100 y termina en 0) se vaya gastando mas rápido mientras mas objetos hayan activos. Debido al gameplay del juego, debes estar constantemente activando y desactivando estos objetos, haciendo que un código como este:
when I receive [ v]
forever
if <[] = []> then
wait () secs
change [ v] by (0)


else
wait () secs
change [ v] by (0)
end
end
No funcione correctamente ya que Scratch primero ejecuta el “esperar x segundos, añadir y a z” y después revisa si el valor de objetos activos ha cambiado. (cabe aclarar que el código ha sido simplificado ya que en el juego hay mas objetos)

Existe una alternativa a esto? De todas formas, estaba pensando en cambiar el sistema de energía a uno mas simple de programar, pero si se puede recrear uno como este sería perfecto.
TomasBrickies
Scratcher
1000+ posts

Existe una alternativa funcional al bloque de esperar x segundos en bucles?

Yo creo que no es algo que necesite estructuras condicionales, podrías hacer una variable llamada “objetos” que su valor sea la cantidad total de objetos activos que tiene el jugador y, que en un bucle, cada cierta cantidad de segundos se le reste a la energía un valor específico multiplicado por la variable “objetos”, más o menos algo así:

change [energia v] by (((2) * (objetos)) * (-1)) 

De esta manera, te evitas ese pequeñito bug de desincronización entre la energía y los objetos activos.
angadid303
Scratcher
2 posts

Existe una alternativa funcional al bloque de esperar x segundos en bucles?

TomasBrickies wrote:

Yo creo que no es algo que necesite estructuras condicionales, podrías hacer una variable llamada “objetos” que su valor sea la cantidad total de objetos activos que tiene el jugador y, que en un bucle, cada cierta cantidad de segundos se le reste a la energía un valor específico multiplicado por la variable “objetos”, más o menos algo así:

change [energia v] by (((2) * (objetos)) * (-1)) 

De esta manera, te evitas ese pequeñito bug de desincronización entre la energía y los objetos activos.
Muchas gracias, habia pensado en las variables pero no se me ocurrió esto.
TomasBrickies
Scratcher
1000+ posts

Existe una alternativa funcional al bloque de esperar x segundos en bucles?

Un placer! Cualquier duda que tengas, acá voy a estar para ayudar

Powered by DjangoBB