Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: --Alberteban-- en Febrero 06, 2011, 07:56:44 PM

Título: Adherir objeto a otro
Publicado por: --Alberteban-- en Febrero 06, 2011, 07:56:44 PM
Hola, c?mo hago para que un objeto al pulsar X tecla se adhiera (que se pege) al objeto al que manejamos.
Título: Re: Adherir objeto a otro
Publicado por: Ciberman en Febrero 06, 2011, 08:11:31 PM
create:
[gml]
pegado=0;
[/gml]
press x:
[gml]
pegado=!pegado;
[/gml]
step:
[gml]
if pegado
{
x=obj_sigue.x;
y=obj_sigue.y
}
[/gml]

Título: Re: Adherir objeto a otro
Publicado por: Selkie en Febrero 06, 2011, 08:55:20 PM
?Lo que buscas es que se mueva junto al objeto?
Puedes hacer una variable. En create (del objeto que se pegue) la defines:
pegado = 0

En el evento de pulsar tecla/press key (en el objeto que se pegue, de nuevo):
if collision_rectangle(x,y,x+sprite_width,y+sprite_height,objeto_personaje,0,0){
pegado = 1}

En el evento de soltar tecla/release key:
pegado = 0

Con eso tenemos una variable que indica si lo estamos cogiendo o no. Al soltar la tecla, se suelta.

Ahora hay que poner lo que se har? si la variable est? activada, es decir, si est? cogido. Podemos declarar, previamente, estas variables en Create:
x_relativa = x-objeto_personaje.x
y_relativa = y-objeto_personaje.y

En Step las actualizamos si el objeto no est? pegado, y si est? pegado, cambiamos las coordenadas:
if pegado = 0{
x_relativa = x-objeto_personaje.x
y_relativa = y-objeto_personaje.y}
if pegado = 1{
x = objeto_personaje.x + x_relativa
y = objeto_personaje.y + y_relativa}

Como no me he explicado bien, lo he aplicado en una demo, pero no tengo tiempo ahora mismo de comentar el c?digo, puede que lo haga m?s tarde.

Saludos y espero que te sirva!


P.D: La diferencia entre este y el del post de arriba es que este deja pegado el objeto en la posici?n relativa en la que lo coge.
P.D2: Tambi?n he interpretado que han de estar juntos para poder pegarse
Título: Re: Adherir objeto a otro
Publicado por: --Alberteban-- en Febrero 07, 2011, 04:43:13 PM
Cita de: Selkie en Febrero 06, 2011, 08:55:20 PM
?Lo que buscas es que se mueva junto al objeto?
Puedes hacer una variable. En create (del objeto que se pegue) la defines:
pegado = 0

En el evento de pulsar tecla/press key (en el objeto que se pegue, de nuevo):
if collision_rectangle(x,y,x+sprite_width,y+sprite_height,objeto_personaje,0,0){
pegado = 1}

En el evento de soltar tecla/release key:
pegado = 0

Con eso tenemos una variable que indica si lo estamos cogiendo o no. Al soltar la tecla, se suelta.

Ahora hay que poner lo que se har? si la variable est? activada, es decir, si est? cogido. Podemos declarar, previamente, estas variables en Create:
x_relativa = x-objeto_personaje.x
y_relativa = y-objeto_personaje.y

En Step las actualizamos si el objeto no est? pegado, y si est? pegado, cambiamos las coordenadas:
if pegado = 0{
x_relativa = x-objeto_personaje.x
y_relativa = y-objeto_personaje.y}
if pegado = 1{
x = objeto_personaje.x + x_relativa
y = objeto_personaje.y + y_relativa}

Como no me he explicado bien, lo he aplicado en una demo, pero no tengo tiempo ahora mismo de comentar el c?digo, puede que lo haga m?s tarde.

Saludos y espero que te sirva!


P.D: La diferencia entre este y el del post de arriba es que este deja pegado el objeto en la posici?n relativa en la que lo coge.
P.D2: Tambi?n he interpretado que han de estar juntos para poder pegarse

?Much?simas gracias!