Noticias

Importante: ¡Si quieres publicar tu juego no olvides leer este tema!

Comunidad Game Maker

Bienvenid@ a la comunidad hispana de Game Maker. Nuestro objetivo es crear videojuegos y dar soporte en castellano de GM. Para mejorar nuestro servicio hemos implantado, como adicion al reglamento general, algunas normas especificas en los subforos más comunes. ¡No olvides informarte antes de participar!.

Autor Tema: Crear detonadores y Explosivos  (Leído 333 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado HKaichim

en: Noviembre 07, 2018, 09:48:08 pm
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...


No Tienes Permisos Para Dar Puntos
point 0 Puntos

Este tema no recibió puntos.


Desconectado Hezz

Respuesta #1 en: Noviembre 08, 2018, 01:23:26 am
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
//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.

STEP
//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;}
    }
}

CREATION CODE (clic derecho en el objeto en el room editor)
index = 0;

PUERTA
CREATE
image_index = 0;
image_speed = 0;

//Cambiar de estado
change_state = false;

//Si está abierta
opened = false;

STEP
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;}
}

ANIMATION END
///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;

CREATION CODE
//global.puzzle_index[id de index, id de objeto]
global.puzzle_index[0,0] = id;

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.



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.
« última modificación: Noviembre 08, 2018, 01:28:00 am por Hezz »

 
Los siguientes usuarios dieron las gracias a este tema: Yuzo, HKaichim