Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: matiascarpello en Agosto 07, 2014, 04:14:27 PM

Título: Ayuda con View
Publicado por: matiascarpello en Agosto 07, 2014, 04:14:27 PM
Hola gente, tengo un juego similar a Flappy Bird, y tengo un problema con la view.

Se los explico, en mi caso el personaje es el que se mueve y no el escenario a diferencia de la mayoría de engines. ¿Porque no hacerlo al reves? Pues porque mi juego será por niveles y no un modo infinito como el Flappy Bird Original.

Ahora que ya aclare eso, paso a explicarles con la imagen que dejo abajo.

(http://k32.kn3.net/5/C/5/3/D/6/C83.png)

En la imagen Nº1 pueden ver una idea del juego corriendo, la room es mucho mas larga pero solo dejo lo que se ve en la view.

La view funciona perfectamente, es decir, el personaje siempre va a estar en la misma posición ajustada a la view como ven en la imagen Nº1.

Mi dua es la siguiente. En la imagen 2 pueden ver que el personaje está a punto de colicionar con ese obstaculo.

Lo que hace ese obstaculo es que una vez que el pajaro colicione con el, le aplica un reverse horizontal y por lo tanto el pájaro envés de moverse hacia la derecha lo hará hacia la izquierda.

Y es ahí donde esta mi problema que no puedo resolver. Como se puede ver en la imagen Nº3, al ir hacia la izquierda no ve ve nada en pantalla puesto que el personaje estaba configurado para una view hacia la derecha.

Entonces ¿como intente solucionarlo?

Intente aplicar un if en el evento steep del personaje

if hspeed <0
{
view_xview[0]=x-100
}
else
{
view_xview[0]=x-250
}


Simplemente le indicaba que si la velocidad horizontal es mayor a 0, que quede con la configuración de la view como la tiene por defecto, y si la velocidad horizontal es menor a 0 modificar los valores de la view.

El código funciona pero el problema es que cuando se produce el cambio de view es muy brusco, de golpe se acomoda y no termina siendo la solución.  Realmente queda muy feo. El proceso tiene que ser halgo suave.

¿Algúna idea de como lo puedo solucionar?
Título: Re:Ayuda con View
Publicado por: king195 en Agosto 07, 2014, 04:32:56 PM
Una opción podría ser que a medida que llegas al objeto utilizando un:

point_distance(objeto_a_colisionar)

fueras bajando también el xview, de tal forma que cuando choque sea en un punto que pueda cambiar sin ser tan brusco y de forma natural.

La otra sería usar alguna transición. Yo también ando liado justamente con un problema similar XD a ver si entre los dos lo solucionamos mutuamente.

Pero bueno ya te digo, lo suyo sería disimularlo con alguna cinemática o transición de por medio...