Mayo 31, 2020, 09:05:22 AM Ultima modificación: Mayo 31, 2020, 08:59:12 PM por cristopher2545
hola a todos! me puse a practicar un rato con el pathfinding que trae game marker por defecto y todo muy bien hasta ahi pero me surgio un pequeño problema tengo 5 objetos llamados "objetivo" que es un objeto duplicado 5 veces y tengo un objeto "A.I" duplicado 5 veces

la tarea del objeto A.I es ir hacia un "objetivo" y marcarlo como reservado es decir que quiero que desde que el juego inicie cada A.I vaya hasta un objeto que no este ocupado por otra instancia A.I

por ejemplo digamos que el "objetivo" es una mesa vacía y el "A.I" es un cliente que quiere ocupar esa mesa cuando corro el código todos los clientes se quieren sentar en una sola mesa, lo que me gustaría hacer es que si un  cliente elige una mesa, los otros vayan escogiendo mesas al azar hasta que todos terminen sentados en las 5 mesas sin amontonarse todos en una misma.

intente asignar una variable que haga target al azar y compruebe si esa mesa ya esta tomada por otro cliente pero no obtuve resultados cual seria el método correcto para hacerlo?

gracias por la ayuda de antemano!
Programame! como a una de tus árcades chinas

GET BEHIND ME DOCTOR!

Pon una variable en el objeto mesa que indique si está ocupada
[gml]
ocupada = false;
[/gml]

El objeto cliente puede buscar una mesa vacía así
[gml]
mesaObjetivo = noone; // al principio no hay objetivo

with (objMesa) {// revisar todas las mesas
    if (ocupada == false) {// si una mesa no está ocupada
        other.mesaObjetivo = id; // se convierte en objetivo
        ocupada = true; // ahora está ocupada
        break; // terminar de revisar las mesas
    }
}
[/gml]

Cita de: Clamud en Mayo 31, 2020, 03:05:51 PM
Pon una variable en el objeto mesa que indique si está ocupada
[gml]
ocupada = false;
[/gml]

El objeto cliente puede buscar una mesa vacía así
[gml]
mesaObjetivo = noone; // al principio no hay objetivo

with (objMesa) {// revisar todas las mesas
    if (ocupada == false) {// si una mesa no está ocupada
        other.mesaObjetivo = id; // se convierte en objetivo
        ocupada = true; // ahora está ocupada
        break; // terminar de revisar las mesas
    }
}
[/gml]

funciona de maravilla! al iniciar cada cliente escoje una mesa vacia y se va a ella, muchas gracias!
Programame! como a una de tus árcades chinas

GET BEHIND ME DOCTOR!