Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: nonoroman en Octubre 20, 2015, 01:05:13 PM

Título: OBJECTO QUE SIGUE A LA CAMARA
Publicado por: nonoroman en Octubre 20, 2015, 01:05:13 PM
Buenas chicos, otra vez ando por aqui.
Ahora estoy comenzando mi 3ª Juego. Y espero con este juego dar un pequeño salto de calidad.

Bueno a lo que iba. Me ha surgido una duda, espero que me podais ayudar please.

El caso es que tengo un objecto (BOTON_A) que seguira a la camara, ya que es el tipico boton "virtual" aunque os apunto que no es un virtualkey, es realmente un objecto. El caso es que este para estar presente en siempre vaya donde vaya la camara.
He ejecutado este codigo.

x = view_xview[0]+50;
y = view_yview[0]+270;

Este codigo lo he puesto en el evento DRAW GUI, el caso es que funciona, sigue en todo momento a la camara, el problema es que mientras la camara se mueve, este objecto lo sigue, pero va dando "SALTITOS". Y es muy desagradable, no queda nada profesional.

Algo me falta, para que vaya bien fino, asi que espero que me echeis una mano como muchas veces en este gran foro.

Saludos y abrazos a todos.  ;)

Título: Re:OBJECTO QUE SIGUE A LA CAMARA
Publicado por: penumbra en Octubre 20, 2015, 01:37:53 PM
El evento DRAW_GUI más que nada sirve para DIBUJAR. El código que estás colocando ahí no dibuja. Ese código muevelo a STEP del botón. En el evento CREATE del botón agrega:
[gml]visible = false[/gml]

En el evento DRAW GUI dibuja el sprite del botón A
[gml]draw_sprite(spr_botonA, 0,  view_xview[0]+50, view_yview[0]+270)[/gml]

El sprite debe dibujarse sin saltos, y debajo de él está el botón, que aunque invisible, todavía funcionaría.
Título: Re:OBJECTO QUE SIGUE A LA CAMARA
Publicado por: Guacusio en Octubre 20, 2015, 08:12:35 PM
Cita de: penumbra en Octubre 20, 2015, 01:37:53 PM
En el evento DRAW GUI dibuja el sprite del botón A
[gml]draw_sprite(spr_botonA, 0,  view_xview[0]+50, view_yview[0]+270)[/gml]

Dado que eso va en el evento DRAW GUI, debiera ir sin referencia a las coordenadas del view:

draw_sprite(spr_botonA, 0,  50, 270)

Si hubiera escalamiento de la application surface (por ejemplo cuando ésta no tiene las dimensiones del display y se está en pantalla completa), habría que dibujar además escalado el sprite. En mi opinión, sería más sencillo descartar el uso del evento DRAW GUI para dibujar y simplemente hacer:

Evento end step del botón:
x = view_xview[0]+50;
y = view_yview[0]+270;


que es lo mismo que hizo nonoroman, pero en el evento end step en vez de DRAW GUI (puede que con eso deje de dar "saltos", aunque no estoy seguro).
Título: Re:OBJECTO QUE SIGUE A LA CAMARA
Publicado por: eams1986 en Octubre 20, 2015, 08:27:53 PM
si lo ubica en el evento DRAw_gui es 100% seguro que no brincara.

Suerte.
Título: Re:OBJECTO QUE SIGUE A LA CAMARA
Publicado por: penumbra en Octubre 20, 2015, 08:29:48 PM
Cita de: Guacusio en Octubre 20, 2015, 08:12:35 PM
Dado que eso va en el evento DRAW GUI, debiera ir sin referencia a las coordenadas del view:
Lo que menciona Guacusio es cierto. Me confundí y puse las coordenadas de la vista como si fuera otro evento.
Título: Re:OBJECTO QUE SIGUE A LA CAMARA
Publicado por: Guacusio en Octubre 21, 2015, 12:08:22 AM
Cita de: eams1986 en Octubre 20, 2015, 08:27:53 PM
si lo ubica en el evento DRAw_gui es 100% seguro que no brincara.

Suerte.

Sí, si lo dibuja en coordenadas constantes en DRAW GUI, pero la instancia del botón también hay que hacerla coincidir con el dibujo del botón para que reaccione a las presiones del usuario, por lo que es necesario mover sus coordenadas x,y junto con el view. En vez de dibujar en DRAW GUI el botón y aparte hacer su instancia invisible y moverlo en otro evento, me parece mejor moverlo y dibujarlo en el mismo evento draw (no draw gui). Ya probé moviéndolo en el evento end step y hay un salto, lo que significa que las coordenadas del view se actualizan después de end step para un view que sigue a una instancia. Colocando esto en el evento draw deja de haber un salto:

x=view_xview[0]+50;
y=view_yview[0]+270;
draw_self();
Título: Re:OBJECTO QUE SIGUE A LA CAMARA
Publicado por: eams1986 en Octubre 21, 2015, 12:17:01 AM
Tambien puedes hacerlo con virtual keys y dibujas en el draw el boton que quieres que aparezca en pantlla hay tampoco brincara.

Saludos
Título: Re:OBJECTO QUE SIGUE A LA CAMARA
Publicado por: Guacusio en Octubre 21, 2015, 12:25:12 AM
Cita de: eams1986 en Octubre 21, 2015, 12:17:01 AM
Tambien puedes hacerlo con virtual keys y dibujas en el draw el boton que quieres que aparezca en pantlla hay tampoco brincara.

Saludos

Esa es la manera más sencilla de hacerlo, pero nonoroman dijo al principio que no usa virtual keys; supongo que tendrá un motivo.
Título: Re:OBJECTO QUE SIGUE A LA CAMARA
Publicado por: eams1986 en Octubre 21, 2015, 12:30:50 AM
No es que no use ,si nonque dijo que no era una virtual keys XD
Bueno el sabra hacerlo de la mejor manera y la virtual keys es lo mejor que yo he travesiado ?