Você pode tentar usar estudar as mp_grid:
Motion Planing
São movimentos feitos com base em uma grade, talvez sirva para encontrar esse espaçamento que quer.
FLWS!
Para criar o gmz é só Clicar em File -> Expor Project.
FLWS!
FLWS!
Obrigado por visitar a The Game Makers Brasil Use o fórum de Dúvidas para fazer perguntas. Se está em busca de aprender dê uma olhada nos tutoriais. |
Interação entre instances do mesmo objecto
- Lunion4saken
- Novato
- Reações: 0
- Mensagens: 10
Interação entre instances do mesmo objecto
Bom dia,
Gostaria de pergunta se é possivel criar alguma interação entre instances do mesmo objecto por exemplo o objecto A tem a instância A.1, A.2 e A.3 . As intancias tem de ver que estam sempre a x de distancia das outra duas( sem usar a instance_nearest e instance_furthest já que poderei usar mais de 3 instances).
Agora noutro caso, existe uma variavel true ou false e todos as instancias teram de ver se essa variavel está true ou false para cada uma das outras ou então para a mais proxima. E se for true elas aproxima-se dessa ou se for false não.
E a terceira interação que quero é o mesmo da anterior mas em vez de ser os outros a ver se a variavel está true ou false é o proprio objecto ao estar true dizer aos outros que se podem aproximar.
Obrigado
Gostaria de pergunta se é possivel criar alguma interação entre instances do mesmo objecto por exemplo o objecto A tem a instância A.1, A.2 e A.3 . As intancias tem de ver que estam sempre a x de distancia das outra duas( sem usar a instance_nearest e instance_furthest já que poderei usar mais de 3 instances).
Agora noutro caso, existe uma variavel true ou false e todos as instancias teram de ver se essa variavel está true ou false para cada uma das outras ou então para a mais proxima. E se for true elas aproxima-se dessa ou se for false não.
E a terceira interação que quero é o mesmo da anterior mas em vez de ser os outros a ver se a variavel está true ou false é o proprio objecto ao estar true dizer aos outros que se podem aproximar.
Obrigado
Re: Interação entre instances do mesmo objecto
Primeira questão:
Depende do comportamento dessas instâncias, elas estão sempre livres e apenas ao aproximar que tem esse limite ou sempre há esse limite?
Segunda questão:
Você pode fazer uma varredura, mas tem que definir um critério para fazer um objeto seguir o outro, ainda é pela menor distância?
O terceiro questionamento é redundante, é a mesma coisa.
Enfim, acho que entendi mais ou menos o que você quer fazer. Faça uma experimentação: crie um objeto a parte com uma sprite de um bloco branco e coloque isso no Create:
E isso no Step:
Agora espalhe varias instâncias desse objeto na room e veja o resultado. Com base nisso podemos modificar e chegar ao ponto que você quer.
Os objetos se aproximam de quem é vermelho, inclusive quem é vermelho. Mantendo uma distância de 64. Ou seja, os brancos ainda conseguem ficar perto um do outro. Basta modificar as regras ao seu gosto.
FLWS!
Depende do comportamento dessas instâncias, elas estão sempre livres e apenas ao aproximar que tem esse limite ou sempre há esse limite?
Segunda questão:
Você pode fazer uma varredura, mas tem que definir um critério para fazer um objeto seguir o outro, ainda é pela menor distância?
O terceiro questionamento é redundante, é a mesma coisa.
Enfim, acho que entendi mais ou menos o que você quer fazer. Faça uma experimentação: crie um objeto a parte com uma sprite de um bloco branco e coloque isso no Create:
Código: Selecionar todos
// Torna a escolha aleatória
randomize();
// Escolhe entre true e false
ligado = choose(true, false);
// Muda de cor se esta 'ligado'
if ligado
{
image_blend = c_red;
}
Código: Selecionar todos
// Maior distância
var distancia = 32000;
// Instância mais próxima
var maisProximo = noone;
// Percorre todas as instâncias de 'block'
for (var i =0; i < instance_number(block); i++)
{
// Guarda a isntância atual
var o = instance_find(block, i);
// Caso verifica a si mesmo pula esta etapa
if (o.id == id) continue;
// Caso a instância esteja 'ligada' e a ditância é menor
if (o.ligado == true and distance_to_object(o) < distancia)
{
// Escolhe o mais próximo
maisProximo = o;
// Define nova distância minima
distancia = distance_to_object(o);
}
}
// Caso tenha encontrado a instancia
if (instance_exists(maisProximo))
{
// Define uma distancia minima de aproximação
if distance_to_object(maisProximo) > 64
{
// Se aproxima da instância
mp_potential_step(maisProximo.x, maisProximo.y, 4, true);
}
}
Os objetos se aproximam de quem é vermelho, inclusive quem é vermelho. Mantendo uma distância de 64. Ou seja, os brancos ainda conseguem ficar perto um do outro. Basta modificar as regras ao seu gosto.
FLWS!
- Lunion4saken
- Novato
- Reações: 0
- Mensagens: 10
Re: Interação entre instances do mesmo objecto
Obrigado,
Era isso que eu queria alterei um pouco o código para que quando ligado anda-se randomicamente em vez de procurar outro instance ligado e fiz isso no step com mp_potential_step e aconteceu algo engrançado, todos vão se aproximar cada vez mais do meio e os brancos são paredes para os vermelhos.
E o gamemaker tem alguma funcionalidade que faça esses espaços automaticamente?
Agora o resto ainda tenho de testar como vou fazer para o projeto.
Era isso que eu queria alterei um pouco o código para que quando ligado anda-se randomicamente em vez de procurar outro instance ligado e fiz isso no step com mp_potential_step e aconteceu algo engrançado, todos vão se aproximar cada vez mais do meio e os brancos são paredes para os vermelhos.
E o gamemaker tem alguma funcionalidade que faça esses espaços automaticamente?
Agora o resto ainda tenho de testar como vou fazer para o projeto.
Re: Interação entre instances do mesmo objecto
Basta coloca o terceiro argumento de mp_potential_step como false.Lunion4saken escreveu:Obrigado,
Era isso que eu queria alterei um pouco o código para que quando ligado anda-se randomicamente em vez de procurar outro instance ligado e fiz isso no step com mp_potential_step e aconteceu algo engrançado, todos vão se aproximar cada vez mais do meio e os brancos são paredes para os vermelhos.
E o gamemaker tem alguma funcionalidade que faça esses espaços automaticamente?
Agora o resto ainda tenho de testar como vou fazer para o projeto.
Você pode tentar usar estudar as mp_grid:
Motion Planing
São movimentos feitos com base em uma grade, talvez sirva para encontrar esse espaçamento que quer.
FLWS!
- Lunion4saken
- Novato
- Reações: 0
- Mensagens: 10
Re: Interação entre instances do mesmo objecto
Comecei a fazer o projeto usando o que me disse, mas cheguei a um problema.
Presiso de fazer a contagem de objectos que estão proximos e tem a variavel = true, sendo que todos os outros, ou muito distantes ou com a variável false não sejam contados. Para depois multiplacar por um valor que decrece.
No caso do meu projeto existem arbustos que com o tempo vão adicionando comida e coelhos que tem fome e vão aproximar-se. O problema é que não posso usar o comando instance_nearerst se houver por exemplo dois coelhos a comer no mesmo arbusto. Já que o numero de comida do arbusto diminui. O que quero é que ela diminua n vezes mais rapido conforme os n coelhos que estiver a menos de x distancia e estajam com a variavel fome em true. (tudo o resto já fiz)
Presiso de fazer a contagem de objectos que estão proximos e tem a variavel = true, sendo que todos os outros, ou muito distantes ou com a variável false não sejam contados. Para depois multiplacar por um valor que decrece.
No caso do meu projeto existem arbustos que com o tempo vão adicionando comida e coelhos que tem fome e vão aproximar-se. O problema é que não posso usar o comando instance_nearerst se houver por exemplo dois coelhos a comer no mesmo arbusto. Já que o numero de comida do arbusto diminui. O que quero é que ela diminua n vezes mais rapido conforme os n coelhos que estiver a menos de x distancia e estajam com a variavel fome em true. (tudo o resto já fiz)
Re: Interação entre instances do mesmo objecto
Se tivesse falado dos arbustos e coelhos antes teria facilitado bastante kkkkkkk
Bom, vamos lá, é bem simples então, fiz um exemplo:
Exemplo - Coelhos
FLWS!
Bom, vamos lá, é bem simples então, fiz um exemplo:
Exemplo - Coelhos
FLWS!
- Lunion4saken
- Novato
- Reações: 0
- Mensagens: 10
Re: Interação entre instances do mesmo objecto
Obrigado,
Não sabia que também se pode alterar variáveis de outras instâncias.
Bem agora já funciona.
E o espaçamento que estava a falar é no código não no jogo em si. Fica um pouco confuso tudo amontoado por isso queria saber se o gamemaker tem algo que faça os espaçamentos automaticamente no código.
E como é que querias essa apliacação gmz? quando salvo só aparece a pasta em gmx
Não sabia que também se pode alterar variáveis de outras instâncias.
Bem agora já funciona.
E o espaçamento que estava a falar é no código não no jogo em si. Fica um pouco confuso tudo amontoado por isso queria saber se o gamemaker tem algo que faça os espaçamentos automaticamente no código.
E como é que querias essa apliacação gmz? quando salvo só aparece a pasta em gmx
Re: Interação entre instances do mesmo objecto
Esse espaçamento você vai fazer com o mp_grid, basta ler a documentação, é bem simples.Lunion4saken escreveu:Obrigado,
Não sabia que também se pode alterar variáveis de outras instâncias.
Bem agora já funciona.
E o espaçamento que estava a falar é no código não no jogo em si. Fica um pouco confuso tudo amontoado por isso queria saber se o gamemaker tem algo que faça os espaçamentos automaticamente no código.
E como é que querias essa apliacação gmz? quando salvo só aparece a pasta em gmx
Para criar o gmz é só Clicar em File -> Expor Project.
FLWS!
- Lunion4saken
- Novato
- Reações: 0
- Mensagens: 10
Re: Interação entre instances do mesmo objecto
Secalhar é melhor demostrar o que queria dizer com espaçamento:
A minha pergunta do espaçamento era se o gamemaker tem alguma funcionalidade que faz com que aqueles espaços façam automaticamente?
Código: Selecionar todos
If variavel= true {
if variavel2=false{
variavel3=false
}
}
para
if variavel=true{
if variavel2=false{
variavel3=false
}
}
A minha pergunta do espaçamento era se o gamemaker tem alguma funcionalidade que faz com que aqueles espaços façam automaticamente?
Re: Interação entre instances do mesmo objecto
Não, a identação não é automática. Espero que isso mude na nova versão que vai sair esse mês.Lunion4saken escreveu:Secalhar é melhor demostrar o que queria dizer com espaçamento:
If variavel= true {
if variavel2=false{
variavel3=false
}
}
para
if variavel=true{
if variavel2=false{
variavel3=false
}
}
A minha pergunta do espaçamento era se o gamemaker tem alguma funcionalidade que faz com que aqueles espaços façam automaticamente?
FLWS!
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 0 visitante