Hola amigos :D como estan el dia de hoy? Espero que bien, bueno vengo con otra duda y es que me gustaria saber si hay posibilidades de crear un solo Objeto llamado Detonador y otro Explosivo, pero que en el mapa puedan haber varios detonadores que activen sus respectivos explosivo...
Hola HKaichim! Yo hice algo parecido, pero con palancas y puertas. Te dejo el código de los objetos por si te sirve:
PALANCA
CREATE
[gml]//Imágenes
image_index = 0;
image_speed = 0;
depth = -y-24;
//Variables
state = false; //Estado. true = activada; false = no activada.
change_state = false; //Al estar true, cambia de estado y pasa a false.
//Este objeto tiene una variable en el create_event de la room.
//Esa variable define a qué objetos está "anclado" este objeto.[/gml]
STEP
[gml]//Si cambia de estado
if (change_state){
//Cambiar de estado
if (state == true) {state = false; image_index = 0;}
else {state = true; image_index = 1;}
//Que no cambie más de estado la palanca
change_state = false;
//Cambiar de estado a los demás objetos de la index
for (i=0;i<10;i++) {
var obj = global.puzzle_index[index,i];
if (obj > 0) {
obj.change_state = true;
}
else {exit;}
}
}[/gml]
CREATION CODE (clic derecho en el objeto en el room editor)
[gml]index = 0;[/gml]
PUERTA
CREATE
[gml]image_index = 0;
image_speed = 0;
//Cambiar de estado
change_state = false;
//Si está abierta
opened = false;[/gml]
STEP
[gml]if (change_state) {
//Hacer que no vuelva a cambiar de estado
change_state = false;
//Si el index de imagen es mayor a 0 o la velocidad de la animación es mayor a 0...
if (image_index > 0 && image_speed >= 0) {image_speed = -0.3; opened = false;}
else {image_speed = 0.3; opened = true;}
}[/gml]
ANIMATION END
[gml]///Detener la animación en el primer y último frame
//Si está abierta, dejar el frame de abierto
if (opened) {image_index = 14;}
//Si está cerrado, dejar el frame de cerrado
else {image_index = 0;}
//Sin más animación
image_speed = 0;[/gml]
CREATION CODE
[gml]//global.puzzle_index[id de index, id de objeto]
global.puzzle_index[0,0] = id;[/gml]
Es obvio que algunas cosas de este código te sirven y y otras no, así que fijate. Esto lo hice en el GM:S1 hace ya un tiempo, así que no sabría cómo explicártelo bien :-[ Pero básicamente necesitas una array 2D global (en mi caso global.puzzle_index[x,y]) que almacena la informacion de qué palanca afecta a qué puerta.
(http://oi65.tinypic.com/w148qp.jpg)
Lo que hace es que cuando una palanca de valor x es activada, va a cambiar de estado a todas las puertas que estén en el valor de y. Por ejemplo, la palanca 0 se activa y activa a todas las id de puerta que estén en [0,y]. No sé si me explico muy bien.
Espero que te sirva. Te dejo adjunto el gmk de GM:S1.