Me gustaría comenzar diciendo que todavía soy bastante nuevo en gameMakerstudio y que no sé todo lo que hay que saber sobre cómo funciona el software y esta es probablemente la causa raíz de mi problema, ya que no sé por qué tengo esto. problema de capas actual.

He tenido un problema en el que tengo DOS eventos DrawGUI en objetos separados dentro de la misma habitación.

El primer objeto es una niebla de guerra que dibuja una GUI y revela el mapa a medida que el jugador se mueve, y mantiene los lugares explorados visibles pero no a la vista.

El segundo objeto es el joystick donde un jugador usará su pulgar para arrastrar el stick y mover al jugador.

Desde que implementé la Niebla de Guerra. No he podido ver el joystick. Parece que la niebla de la guerra se extiende sobre él y no puedo usarlo.

Entiendo que hay otros eventos de sorteo en los que puedo hacer esto.

Dibujar Dibujar GUI Dibujar Comenzar Dibujar Finalizar Dibujar GUI BEGIN Dibujar GUI END

Después de cambiar donde tengo el dibujo de código. Ejemplo: Al principio, el joystick y la niebla estaban en Draw GUI, después de mover uno de Draw GUI a Draw GUI Begin, aparece el mismo problema.

Me he asegurado de colocar el joystick en el nivel más alto de la habitación y la niebla de guerra en la capa más inferior.

He intentado aplicar profundidad al objeto

oJoystick_Stick.depth = -100;

Esto no logra nada.

¿Hay otra forma de forzar a dos objetos en la capa GUI a estar uno encima del otro?

0
Julian Silvestri 22 feb. 2021 a las 19:28

2 respuestas

La mejor respuesta

Según tengo entendido, DrawGUI siempre prioriza los objetos dibujados allí por encima de cualquier cosa en Draw, incluidos Begin Draw y End Draw, porque es una interfaz (las estadísticas que ves sobre tu personaje como salud, munición, etc.), y no son parte de la sala. sí mismo. También puede haber notado que los objetos dibujados en DrawGui también siguen la cámara / punto de vista.

Después de eso, la variable depth y las capas dentro de la habitación tienen prioridad, cada capa también ha dado un valor de profundidad, con un intervalo de 100.

Luego, finalmente, el orden de los objetos y el código cargado.

Sin embargo, no he usado un sistema Fog of War, así que no sé si está integrado o no, pero no recomendaría colocarlos en DrawGUI, ya que debería reservarse para el diseño de la interfaz. Con las opciones de dibujo predeterminadas, tendrá más acceso a las capas dentro de la habitación.

1
Steven 23 feb. 2021 a las 07:40

Algunos consejos sobre DrawGUI

  • DrawGUI Begin -> llamar al evento antes de cada drawGUI en ese momento
  • DrawGUI --------> el evento se llama sincronización con la frecuencia de actualización de la pantalla
  • DrawGUI End ----> llamar al evento después de cada drawGUI en ese momento

Así que la "canalización" de GM-Studio para DrawGUI es como el evento step, tenemos un BEGIN, un CURRENT, un END.

Para priorizar el renderizado de objetos, GM-Studio usa la variabile de profundidad incorporada. Toma el 0 como valor de referencia. Los objetos con un valor de profundidad> 0 se representan como último. Los objetos con un valor de profundidad <0 se representan frente a todo. Verifique la profundidad durante la llamada de la función instance_create_depth (), verifique dónde está cambiando la variable de profundidad, verifique en el editor de sala para cada capa de instancia el valor de profundidad. y orden z.

0
Sansonight 23 feb. 2021 a las 17:45