Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: seed86 en Abril 06, 2014, 02:47:36 PM

Título: Background no sigue la view correctamente.
Publicado por: seed86 en Abril 06, 2014, 02:47:36 PM
Estoy intentando poner un background a mi juego 2D y quiero que este esté estático siempre en las mismas coordenadas aunque el jugador avance por el nivel. Para ello tengo un objeto "controller" que se encarga de esto y otras cosas. Para ello he usado en el código STEP:

background_x[0]=view_xview[0];
background_y[0]=view_yview[0];


Pero el problema es que el background se queda un poco atrás cuando el jugador avanza y no se cuadra en la pantalla hasta que el jugador se para. Es como si tuviera una latencia o una aceleración a la hora de desplazarse y queda horriblemente mal.


Título: Re:Background no sigue la view correctamente.
Publicado por: abraham2036 en Abril 06, 2014, 03:41:58 PM
Porque no creas un sprite con ese backgraund de las mismas medidas y luego haces un objeto sin ninguna caracteristica  y lo colocas donde quieres ? , en plan si quieres que ese background solo este en una zona determinada colocas el objeto ahí y en la profundidad del objeto pones 2 o asi para qe este en el fondo y no se sobreponga con otro objeto .Si lo que quieres es que el objeto te siga en una zona de la pantalla , en el vento end step añades el código :

x = view_xview+nº;
y = view_yviex+nº;

donde pone nº pones un numero de cordenadas y vas probando hasta que te quede donde quieres .
Título: Re:Background no sigue la view correctamente.
Publicado por: eams1986 en Abril 06, 2014, 04:41:58 PM
Yo se.lo que tu dices que cuando uno.se mueve el background  también pero con un percance de.unos píxeles .lo que tienes que.hacer es dibujaron en la pantalla y para eso utilizamos el DRAW GUI y verás que.funciona
x = view_xview+32;
y = view_yviex+32;

El.32 es tu coordenada ok no se te olvide
Título: Re:Background no sigue la view correctamente.
Publicado por: seed86 en Abril 06, 2014, 05:53:14 PM
Qué es lo que hace Draw GUI exactamente? Osea que debería crear un objeto invisible con una gran profundidad y que dibuje el sprite en pantalla en todo momento?
Título: Re:Background no sigue la view correctamente.
Publicado por: seed86 en Abril 06, 2014, 06:09:06 PM
Ok, he hecho lo de crear el objeto que dibuje el fondo en pantalla pero me aparece el mismo error, el fondo no se está quieto
El objeto tiene lo siguiente:

CREATE
X=0;
Y=0;


STEP
X=view_xview[0];
Y=view_yview[0];


DRAW
draw_sprite_ext(spr_bk_beach,image_index,X,Y,4,4,0,c_white,1)
Título: Re:Background no sigue la view correctamente.
Publicado por: ocarina en Abril 06, 2014, 07:04:12 PM
amigo pon solo view_xview;
y view_yview;
sin los [  ]



Título: Re:Background no sigue la view correctamente.
Publicado por: seed86 en Abril 06, 2014, 09:13:44 PM
Quitar los [] no influye en nada.
Título: Re:Background no sigue la view correctamente.
Publicado por: penumbra en Abril 06, 2014, 09:40:09 PM
No sé si vaya a funcionar, pero y si usas esto en [DRAW] del controlador?

draw_background(mi_fondo, view_xview[0], view_yview[0])

A algunos les funciona y a otros no, pero puedes probar a activar la opción
"Use synchronization to avoid tearing " En los ajustes generales, pestaña windows.

EDITADO:
La verdad no entiendo por qué quieres hacer esto, pues si el fondo siempre queda anclado a la view, el efecto es que todo es estático, parece que el jugador nunca se mueve (aunque sí se mueva) en la pantalla. Acabo de probar

draw_background(mi_fondo, view_xview[0], view_yview[0])

en GM8.1 y funciona bien, no hay problemas de retraso en la imagen
Título: Re:Background no sigue la view correctamente.
Publicado por: seed86 en Abril 06, 2014, 11:49:46 PM
Muchas gracias penumbra, de esta manera responde perfectamente.  :)