Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: ElKopiraih en Abril 14, 2019, 09:29:14 pm

Título: Mover una view al tocar un objeto
Publicado por: ElKopiraih en Abril 14, 2019, 09:29:14 pm
Bien, pues lo que quiero hacer es un efecto parecido al pasar de una "room" a otra en rabbit's quest, que por ejemplo que sea una sola room y cada vez que te salgas de la view avance. Un ejemplo: si te sales por la derecha avance 640 píxeles a la derecha la view y si te sales de la view por arriba, que avance 480 píxeles hacia arriba. Gracias de antemano.
Título: Re:Mover una view al tocar un objeto
Publicado por: Black_Cat en Abril 15, 2019, 05:34:20 pm
Bueno al tocar el objeto tendrías que usar:

view_xview[0] += 640

para mover la camara hacia la derecha o bien usar

view_yview[0] -= 480

para mover la camara hacia arriba.
Título: Re:Mover una view al tocar un objeto
Publicado por: ElKopiraih en Abril 15, 2019, 06:01:26 pm
Me ocurre un error, no se como explicarlo así que directamente paso el editable.
Título: Re:Mover una view al tocar un objeto
Publicado por: Black_Cat en Abril 16, 2019, 04:15:13 am
Creo que ocurre , porque al estar la verificacion de colision dentro del evento step, cada vez que se superpone un borde, la x_view se aumenta.
Por lo que el personaje pasa por encima y la x_view se aumenta muchas veces.

tengo dos soluciones:
1) tendrias que mover al player a una distancia grande de manera que deje de tocar el borde y consecuentemente deje de moverse la x_view al no cumplirse la condicion de colision
2) usar una variable booleana que indique que ya se tocó el borde para no seguir moviendo indefinidamente la x_view
Título: Re:Mover una view al tocar un objeto
Publicado por: ElKopiraih en Abril 16, 2019, 03:13:30 pm
La verificación de colisión esta dentro de Outside view 0, no de step
Título: Re:Mover una view al tocar un objeto
Publicado por: Clamud en Abril 16, 2019, 04:19:12 pm
Creo que la mejor forma es no colisionar con un objeto. En el evento Outside View puedes poner algo como esto
view_xview[0] = (x div 256) * 256;
view_yview[0] = (y div 144) * 144;
o como esto
view_xview[0] = floor(x / 256) * 256;
view_yview[0] = floor(y / 144) * 144;
(256 y 144 son las dimensiones de la view)
No es necesario que el personaje salga por completo de la view para moverla. Por ejemplo, podrías detectar si la mitad del personaje ha salido de la view en el evento Step.

Adjunto un ejemplo
Título: Re:Mover una view al tocar un objeto
Publicado por: ElKopiraih en Abril 16, 2019, 05:13:47 pm
Muchas gracias, Clamud! y también a ti Black_Cat por al menos haber intentado ayudarme.