Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Tigerito019 en Diciembre 05, 2015, 07:00:51 PM

Título: Objeto que este fijo en su posicion
Publicado por: Tigerito019 en Diciembre 05, 2015, 07:00:51 PM
Saludos, pues básicamente lo que quiero es que al presionar un boton se cree un objeto, pero que este no desaparezca de la view mientras avanzo.

Hasta ahora he hecho esto:

Boton que crea el objeto:

Evento Mouse left pressed
instance_create(view_xview+150,view_yview+200,obj_manzana)

He usado el "view_xview+" porque me han dicho que de esta forma el objeto siempre se mantiene en su posicion, pero en este caso no me ha funcionado, espero resuelvan mis dudas. De antemano, gracias.
Título: Re:Objeto que este fijo en su posicion
Publicado por: kostra en Diciembre 05, 2015, 07:29:57 PM
view_xview[0] !! no me cansaré de decir, PNED EL NUMERO DE LA VIEW!! XD

Lo que pasa es que creas la instancia en esa posición, no le estás diciendo al objeto que siga esa posición todo el rato..
step del objeto en cuestión:
[gml]x = view_xview[0]+150;
y = view_yview+200;[/gml]

aunque recomiendo usar evento draw en vez de step si no quieres que haya ese pequeño retraso de 1 step.
[gml]draw_sprite(view_xview[0]+150,view_yview[0]+200,sprite_index);[/gml]
Título: Re:Objeto que este fijo en su posicion
Publicado por: Tigerito019 en Diciembre 05, 2015, 07:38:57 PM
Cita de: kostra en Diciembre 05, 2015, 07:29:57 PM
view_xview[0] !! no me cansaré de decir, PNED EL NUMERO DE LA VIEW!! XD

Lo que pasa es que creas la instancia en esa posición, no le estás diciendo al objeto que siga esa posición todo el rato..
step del objeto en cuestión:
[gml]x = view_xview[0]+150;
y = view_yview+200;[/gml]

aunque recomiendo usar evento draw en vez de step si no quieres que haya ese pequeño retraso de 1 step.
[gml]draw_sprite(view_xview[0]+150,view_yview[0]+200,sprite_index);[/gml]

Gracias por responder, probé con tu solución y se ve feo, como dijiste, hay un retraso en el step.

Pero quiero crear un objeto que el mismo servirá para una función. Entonces, como hago para dibujar un objeto con "draw"?
Título: Re:Objeto que este fijo en su posicion
Publicado por: kostra en Diciembre 05, 2015, 09:49:39 PM
un objeto? será un sprite? xD

ya te lo he dicho como, el segundo código que puse, en eventro DRAW
Título: Re:Objeto que este fijo en su posicion
Publicado por: Tigerito019 en Diciembre 06, 2015, 03:54:07 AM
Cita de: kostra en Diciembre 05, 2015, 09:49:39 PM
un objeto? será un sprite? xD

ya te lo he dicho como, el segundo código que puse, en eventro DRAW

Al parecer no me has entendido. Lo que quiero es que al presionar un botón, se cree un objeto y que aparezca en la pantalla del juego, pero a medida que avanzo por el mapa o nivel, este objeto no desaparezca de la view, sino que mantenga su misma posición en la que fue creado. Me estoy dando a entender?
Título: Re:Objeto que este fijo en su posicion
Publicado por: kostra en Diciembre 06, 2015, 03:57:06 AM
instisto...
1- creas el objeto, tal y como lo tienes hecho
2- pones el código que te puse en el step,
3- pones el segundo código que te puse en el draw, para evitar el restraso.

FIN...
Título: Re:Objeto que este fijo en su posicion
Publicado por: fega en Diciembre 06, 2015, 03:59:34 PM
Tigerito, creo que no te estas dando a explica bien.

según entiendo y entiende Kostra tu quieres mostrar un icono en la pantalla que sea parte de un HUD(Head Up Display)?
en ese caso puedes dibujarlo en draw.

si quieres un objeto que por lo tanto tenga alguna interacción con otros objetos, entonces debes actualizar la posicion en cada STEP, algo asi como
evento step del obj_manzana

x=view_xview+150;
y=view_yview+200;


de otro modo, con tu código, el objeto aparece en esa posición, pero no la actualiza según el movimiento de la view
me hago entender?
Título: Re:Objeto que este fijo en su posicion
Publicado por: kostra en Diciembre 06, 2015, 04:47:43 PM
y lo del draw, que no se le olvide

PD: fega, se dice GUI xD
Título: Re:Objeto que este fijo en su posicion
Publicado por: Markus en Diciembre 07, 2015, 03:53:14 AM
Si usas GMS, puedes usar el evento DRAW GUI y dibujar en las coordenadas relativas de la pantalla.

EVENTO DRAW:

//

Esto es para que el objeto no dibuje su sprite en el escenario.

EVENTO DRAW GUI:

draw_sprite(150,200,sprite_index);


Saludos.