Avatar do usuário
Mysterious Stranger
Membro
Membro
Autor
Mensagens: 36
Registrado em: Seg Set 21, 2015 6:55 pm
Localização: BH
Karma: 73

Contato:

Código para manter soldados ordenados em uma fila

Qui Nov 28, 2019 12:00 pm

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.
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?

Tags:
 
Avatar do usuário
theguitarmester
Membro
Membro
Mensagens: 23
Registrado em: Sáb Ago 22, 2015 12:32 am
Karma: 22

Contato:

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

Qui Nov 28, 2019 10:00 pm

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:
if( !instance_position( x + 22, y, object0 ) && vStatus == "criado" )
{
    vStatus = "anda";
}


Seria algo assim :)
1
 
Avatar do usuário
Mysterious Stranger
Membro
Membro
Autor
Mensagens: 36
Registrado em: Seg Set 21, 2015 6:55 pm
Localização: BH
Karma: 73

Contato:

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

Sex Nov 29, 2019 2:16 pm

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:
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!

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


Valeus!
1

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 5 visitantes