Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Jangse en Agosto 12, 2015, 09:21:29 PM

Título: ¿Enemigos que sigan la animacion una vez abandonamos la room?
Publicado por: Jangse en Agosto 12, 2015, 09:21:29 PM
Bueno, el titulo me ha quedao un poco largo...pero bueno  :-[

Cuando plantee hacer todo el mapa en una room,  era,  por que de esa forma,  los enemigos u obstaculos seguian la animacion cuando abandonabamos dicha zona.

Si hacemos el mapa divido en rooms (por ejemplo 40 pantallas) y visitamos la room del enemigo, este, tiene una secuencia. Es decir, va caminando. Si salimos rapido de esa room y volvemos a entrar ¿Es posible que dicho enemigo siga caminando respetando la trayectoria? Vamos, que de la sensacion de realidad. Me refiero que si volvemos a entrar a esa room el enemigo ya este en otro punto. No que congele su movimiento de caminar si salimos de esa room.

Lo curioso que viendo juegos antiguos (8 bits), a veces el enemigo nos perseguia entre pantallas (rooms). Me explico:

Estabamos en nuestro room y no pasaba nada. Pero al pasar a la otra habitacion el enemigo nos veia y nos perseguia entre las rooms (Y no me refiero con mapeado en scroll) .

¿Se puede programar que los enemigos nos persigan entre las rooms si salimos de donde estan ellos?
Título: Re:¿Enemigos que sigan la animacion una vez abandonamos la room?
Publicado por: penumbra en Agosto 12, 2015, 09:46:32 PM
Sí se puede, pero hay distintas maneras de abordar la implementación. Por ejemplo, ¿el enemigo persecutor sería persistente o no?

Si el enemigo no es persistente, entonces se tendría que crear una variable que indique si hay un enemigo persiguiendo al personaje o no. Al entrar a una nueva habitación se puede echar a andar una alarma (es una manera, no digo que sea la única) para que al llegar a 0, se cree la instancia del enemigo persecutor en la nueva habitación. Obviamente, el valor inicial de la alarma se tendría que calcular en base a la velocidad del enemigo y cuánta distancia separaba al enemigo del protagonista al momento de salir de la habitación anterior. También se debe posicionar cercano al protagonista.

Si el enemigo es persistente, entonces no habría que preocuparse por crear una instancia al cambiar de room, pero sí de posicionarlo acorde a la posición del protagonista (evento room start), para que precisamente se consiga el efecto de "persecución". Esto se puede hacer desde un controlador o desde el objeto del personaje.

Incluso si la instancia enemiga no es persistente en un principio, me parece que es posible volverlo persistente mediante la variable persistent en el evento ROOM_END, por ejemplo. Recordar que las instancias persistentes se preservan al cambiar de habitación (pero su evento CREATE no se ejecutará en la nueva habitación).
Título: Re:¿Enemigos que sigan la animacion una vez abandonamos la room?
Publicado por: Jangse en Agosto 13, 2015, 11:34:41 AM
Gracias, tomo nota de tu explicacion.

La duda venia, por que normalmente, se hacen rooms que ocupan unas cuantas pantallas. Y las views que definimos se encargan de gestionar todo esto. Osea, que al nosotros movernos se efectua el scroll hasta el fin de nivel. Pero claro, cuando cada pantalla es una room hemos de programar odo esto de lo que hablamos. Ya que en ese caso no puede existir el scroll.