Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Ynfiniti en Diciembre 21, 2014, 01:16:23 AM

Título: Posición relativa
Publicado por: Ynfiniti en Diciembre 21, 2014, 01:16:23 AM
Tengo un botón que arrastro en el eje X con el mouse; obviamente haciendo algo como:

if (mouse_check_button(mb_left){x = mouse_x}

Pero el problema es que necesito que la posición de ese botón sea relativa a otro objeto, pero como siempre toma la posición X del mouse, nunca es relativo al otro objeto, ¿Alguna idea de como podría hacer el botón relativo al otro objeto aún cambiando de posición con el mouse?  :-\
Título: Re:Posición relativa
Publicado por: penumbra en Diciembre 21, 2014, 01:22:17 AM
Si quieres arrastrar el botón con el mouse tienes que usar las coordenadas del mouse, ¿por qué quieres que la posición del botón sea relativa a la posición del  otro objeto? Si usas la posición de otro objeto, entonces no respondería al mouse, a menos que tomes en cuenta la posición del mouse y del objeto y saques un promedio, lo que produciría un comportamiento raro
Título: Re:Posición relativa
Publicado por: Ynfiniti en Diciembre 21, 2014, 01:29:08 AM
Cita de: penumbra en Diciembre 21, 2014, 01:22:17 AM
Si quieres arrastrar el botón con el mouse tienes que usar las coordenadas del mouse, ¿por qué quieres que la posición del botón sea relativa a la posición del  otro objeto? Si usas la posición de otro objeto, entonces no respondería al mouse, a menos que tomes en cuenta la posición del mouse y del objeto y saques un promedio, lo que produciría un comportamiento raro


Porque el botón va encima de un objeto base, y si el objeto base se mueve, el botón debería moverse con el  :-\
Título: Re:Posición relativa
Publicado por: Ynfiniti en Diciembre 21, 2014, 01:31:36 AM
¿No hay forma de que al soltar el botón, la posición en que se encuentra se vuelva relativa a la del otro objeto?  ???
Título: Re:Posición relativa
Publicado por: penumbra en Diciembre 21, 2014, 01:35:47 AM
Cita de: Ynfiniti en Diciembre 21, 2014, 01:29:08 AM
Porque el botón va encima de un objeto base, y si el objeto base se mueve, el botón debería moverse con el  :-\

¿Y por qué no mueves el objeto base mediante el ratón, y haces que el botón siga al objeto base? En el objeto base:
[gml]
if (mouse_check_button(mb_left)
{
     x = mouse_x
     obj_boton.x = x + offset
}[/gml]
offset seria una distancia de separación si es que el botón no está exactamente alineado con el origen del objeto base (puede ser negativa, dependiendo de dónde se quiera colocar el botón respecto al objeto base)

Obvio que también se puede al revés, mover el botón y hacer que el objeto base lo siga

Cita de: Ynfiniti en Diciembre 21, 2014, 01:31:36 AM
¿No hay forma de que al soltar el botón, la posición en que se encuentra se vuelva relativa a la del otro objeto?  ???

La verdad no entiendo el comportamiento que quieres lograr. Pero el código anterior hace lo que mencionaste antes: si el objeto base se mueve, el botón se mueve con él (en x)
Título: Re:Posición relativa
Publicado por: Ynfiniti en Diciembre 21, 2014, 02:22:51 AM
Es para algo como esto:
(http://img110.xooimage.com/files/d/6/9/barra-491efd9.jpg)

El botón deslizable de una barra, pero el objeto de la base gris se moverá horizontalmente y el botón debería quedarse justo donde se deje relativamente con el objeto base :-\
Título: Re:Posición relativa
Publicado por: penumbra en Diciembre 21, 2014, 05:00:49 AM
Ya veo. Aqui dejo un ejemplo. El objeto del botón circular (obj_slider) usa la función draw_rectangle para dibujar la barra central

http://www.mediafire.com/download/34yf6oqn36bsfqr/control_deslizante.gmz (http://www.mediafire.com/download/34yf6oqn36bsfqr/control_deslizante.gmz)

[spoiler](http://sia1.subirimagenes.net/img/2014/12/21/141221045324129394.gif)[/spoiler]