Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Emixj11 en Abril 06, 2020, 11:55:02 PM

Título: Cambio de sprite/objeto
Publicado por: Emixj11 en Abril 06, 2020, 11:55:02 PM
buenas!, tengo una consulta, tengo 3 objetos:
*personaje
*botón

*puerta

cuestión de que tengo configurado para que, cuando el personaje colisione con el botón, el botón cambie de sprite al botón apretado.

ahora bien, como podría hacer para que cuando presiono el botón y este cambia de sprite, la puerta al mismo tiempo de apretar el botón cambie de sprite a la puerta abierta? Muchas gracias! gms2
Título: Re:Cambio de sprite/objeto
Publicado por: kostra en Abril 07, 2020, 05:39:51 AM
suponiendo que la puerta tiene el frame 0 como cerrada y el frame 1 como abierta.. y el botón, el frame 0 como no pulsado y el frame 1 como pulsado:

en la puerta (stel)
[gml]
if obj_boton.image_index == 1 && image_index == 0 {
image_index = 1;
}
[/gml]

si quieres crear más de un botón y más de una puerta, olvida completamente el código anterior (no lo pongas) y asignales una variable en create, por ejemplo
[gml]
identificador = 0;
[/gml]
en ambos... puerta y botón

y cuando pongas una puerta y botón en la room, click derecho al objeto > Creation code, y ahí pones un número que quieras pero usalo solo para emparejar una puerta con un botón (o varias puertas  o varios botones)

[gml]
identificador = 98754398752376;
[/gml]

eso en todos los objetos que quieras vincular, las puertas y botones que tengan el mismo número estarán vinculadas, para poner otra puerta que se abra con otro botón distinto, ponle otro número, invéntate el número, tampoco hace falta que sea tan largo, puedes poner en una pareja el 1, a otra el 2, 3, 4, etc...

y para que la "vinculación" funcione...  escribe en la colisión del BOTON con el PLAYER (el objeto del BOTON, no te confundas)

[gml]
image_index = 1;
with obj_puerta {
if ide == other.ide image_index = 1;
}
[/gml]


en mi ejemplo uso image_index, pero sirve igual si tú usasvariables estilo "abierto = true", "pulsado = true" y tal... dale suerte!