Noticias

Se ha publicado un nuevo servicio, el Portal de Juegos Online

Comunidad Game Maker

Bienvenid@ a la comunidad hispana de Game Maker. Nuestro objetivo es crear videojuegos y dar soporte en castellano de GM. Para mejorar nuestro servicio hemos implantado, como adicion al reglamento general, algunas normas especificas en los subforos más comunes. ¡No olvides informarte antes de participar!.

Autor Tema: Mover una view al tocar un objeto  (Leído 194 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado 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.

 


No Tienes Permisos Para Dar Puntos
point 0 Puntos

Este tema no recibió puntos.


Desconectado Black_Cat

  • Ganador CGM Game Jam #1
  • Adicto
  • *
  • Puntos: 712
  • Mensajes: 325
  • Agradecido: 43 veces
  • 🧡🧡🧡🧡🧡
    • Ver Perfil
Respuesta #1 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.

Únete al servidor mas chidori de Discord

 


Desconectado ElKopiraih

Respuesta #2 en: Abril 15, 2019, 06:01:26 pm
Me ocurre un error, no se como explicarlo así que directamente paso el editable.

 


Desconectado Black_Cat

  • Ganador CGM Game Jam #1
  • Adicto
  • *
  • Puntos: 712
  • Mensajes: 325
  • Agradecido: 43 veces
  • 🧡🧡🧡🧡🧡
    • Ver Perfil
Respuesta #3 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

Únete al servidor mas chidori de Discord

 
Los siguientes usuarios dieron las gracias a este tema: ElKopiraih


Desconectado ElKopiraih

Respuesta #4 en: Abril 16, 2019, 03:13:30 pm
La verificación de colisión esta dentro de Outside view 0, no de step

 


Desconectado Clamud

Respuesta #5 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

 
Los siguientes usuarios dieron las gracias a este tema: ElKopiraih


Desconectado ElKopiraih

Respuesta #6 en: Abril 16, 2019, 05:13:47 pm
Muchas gracias, Clamud! y también a ti Black_Cat por al menos haber intentado ayudarme.