Hola, ¿Que tal?

Pues, busco ayuda o una orientación sobre como manejar la dificultad o el reto en algunas partes de un juego y sus mecánicas implícitas, por tomar un ejemplo:

En una de las pantallas de mi juego el personaje queda atrapado en una sala donde tiene que sobrevivir una cantidad de tiempo a ser aplastado desde arriba por unos martillos gigantes, y estos van en ciclo de caer y subir, cada uno independiente del otro, el problema esta en que de las maneras que he tratado de llevar esa parte del juego siempre llega un punto donde todos caen a la vez provocando un insta kill al jugador porque no hay donde colocarse. He tratado asignado valores aleatorios a la alarma que uso para que caigan pero igual en algún momento caen todos a la vez o caen muy cerca uno de otro y no da tiempo de escapar.

Si hay alguna mejora que se pueda hacer o alguna manera de hacer mejor esto pues agradecería cualquier ayuda o comentario.

Gracias :D

Podrías pasar el proyecto para poder entender más claramente.

Pues soy nuevo en el foro y no se si hay manera de pasarlo o si prefieres que lo suba a algún deposito de archivos pero básicamente son cuatro objetos que están por encima del jugador y los mismos cumplen con varios estados: Esperar donde su velocidad vertical es de cero, Caer donde su velocidad aumenta para dar el efecto de caída hasta que colisionan con el suelo y al hacer colisión estos cambian a Subir donde regresan a la posición original empezando otra vez el ciclo. El problema radica creo en que la caída esta puesta con una alarma tal que así:

[gml]if alarm[0]= -1 && estado = esEsperando

{alarm[0] = choose(2,4,6)*room_speed
} [/gml]

Me vino a la mente usar el choose para darle un punto de aleatoriedad pero al cabo de cierto tiempo llega un momento donde todos los objetos caen a la vez y bueno, es insta kill. Todos usan la alarma así, he ido probando números y tal pero sucede igual

Entonces no me hago a la idea de como ajustar la alarma para que tengan su ciclo de caer y subir sin que llegue el punto de que todos caigan a la vez.

#3 Septiembre 24, 2019, 11:43:30 AM Ultima modificación: Septiembre 24, 2019, 11:46:23 AM por kostra
pk no haces que caigan según la posición del player? así como la típica estalactita?

EDITO: y si condicionas la caida con un "if obj_martillo.cayendo == false { cayendo = true; }" ?? es decir, hacer que caiga SOLO si no hay ningún martillo cayendo, en el caso de que sí haya alguno cayendo, reinicias la alarm

si es muy aburrido que solo caiga de uno en uno, puedes hacer un recuento de cuántos martillos están cayendo
[spoiler="ola k ase clickarme o k ase"]la imagen no se quita xD
[/spoiler]

Intenta usar randomize() para cambiar la semilla con la que se ajusta el choose() y asi es muy poco probable el instakill habrian imposibilidades  :-[