Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: StephanRocket en Marzo 24, 2019, 10:21:58 AM

Título: Detectar cuando una variable de varios objetos sea true
Publicado por: StephanRocket en Marzo 24, 2019, 10:21:58 AM
Hola, me gustaría saber cómo podría detectar si la variable de todos los objetos de un mismo tipo es positiva, muchas gracias.
Título: Re:Detectar cuando una variable de varios objetos sea true
Publicado por: BssString en Marzo 24, 2019, 01:35:17 PM
Hola StephanRocket

Te recomiendo usar una variable local para detectarlo, la variable local existe sólo en el bloque de código o script que se está ejecutando en ese momento, pero es "global" a todas las instancias del juego, mientras se ejecuta ese bloque, todos los objetos pueden leer y modificar el valor de esa variable.

var check = true //crea la variable local check
if !instance_exists(object_name) { check = false } //si no existe el objeto, no ejecutará nada
else with (object_name) { //hace un loop en todos los objetos
//Si al menos uno de tus objetos no cumple la condición, la variable "check" se vuelve falsa
if (variable = false) { check = false; break }
}

If check = true { //Si check es true es porque revisó la misma variable en todos los objetos y en todos se cumplía la condición
Aquí pones el código que quieres que se ejecute
}


Saludos
Título: Re:Detectar cuando una variable de varios objetos sea true
Publicado por: Clamud en Marzo 24, 2019, 03:17:38 PM
Al código le falta un pequeño detalle: se debe usar la palabra other dentro del loop with.
[gml]
else with (object_name) { //hace un loop en todos los objetos
  //Si al menos uno de tus objetos no cumple la condición,
  //la variable "check" se vuelve falsa
  if (variable == false) {
    other.check = false;
    break;
  }
}
[/gml]