Página 1 de 1

Código para manter soldados ordenados em uma fila

Enviado: Qui Nov 28, 2019 12:00 pm
por Mysterious Stranger
Boa tarde, gente.

Eu tenho um mapa onde soldados vão de um canto a outro. Quando "spawno", podem acabar sendo criado um soldado em cima de outro.
A questão é: Como faço para que um soldado aguarde a passagem do outro para só depois começar a caminhar?

Eu fiz um código que faz ele parar assim que encontra um outro soldado logo a frente.

Código: Selecionar todos

if( instance_position( x + 22, y, object0 ) && vStatus != "stop" )
{
    vStatus = "fila";
}
Quando o status é "fila", a hspeed se torna 0 até o soldado da frente sair da posição.
Esse código pode ser adaptado para o meu propósito?

Re: Código para manter soldados ordenados em uma fila

Enviado: Qui Nov 28, 2019 10:00 pm
por theguitarmester
Boa noite, vim pra avisar que ainda estou vivo.
Algum conhecido ainda por aqui? o.o

Bom, estou há um bom tempo sem mexer com o GameMaker e até com jogos (mas sigo forte na área de desenvolvimento), mas vamos ver se eu ainda me lembro um pokito...

Acredito que tu pode sim aproveitar este código, uma abordagem seria tu pode colocar um outro valor de vStatus para indicar que o soldado não deve prosseguir, e que ele a récem foi criado, portanto quando o outro soldado sair da mesma região que ele, que ele possa prosseguir:

Código: Selecionar todos

if( !instance_position( x + 22, y, object0 ) && vStatus == "criado" )
{
    vStatus = "anda";
}
Seria algo assim :)

Re: Código para manter soldados ordenados em uma fila

Enviado: Sex Nov 29, 2019 2:16 pm
por Mysterious Stranger
theguitarmester escreveu:Boa noite, vim pra avisar que ainda estou vivo.
Algum conhecido ainda por aqui? o.o

Bom, estou há um bom tempo sem mexer com o GameMaker e até com jogos (mas sigo forte na área de desenvolvimento), mas vamos ver se eu ainda me lembro um pokito...

Acredito que tu pode sim aproveitar este código, uma abordagem seria tu pode colocar um outro valor de vStatus para indicar que o soldado não deve prosseguir, e que ele a récem foi criado, portanto quando o outro soldado sair da mesma região que ele, que ele possa prosseguir:

Código: Selecionar todos

if( !instance_position( x + 22, y, object0 ) && vStatus == "criado" )
{
    vStatus = "anda";
}
Seria algo assim :)
Bem vindo de volta!
Eu fiz, mas não funcionou. Mas usei sua ideia de criar um pré-status de "criado" e adaptei aqui o código e funcionou!

Código: Selecionar todos

if( instance_position( x, y, object0 ) && vStatus == "created" )
{
    var vID_other;
    vID_other = instance_position( x, y, object0 );
    vID_other.vStatus = "running";
}
Valeus!