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.

uso de instâncias diferentes do mesmo objeto

Perguntas? A comunidade te ajuda a resolver.
Avatar do usuário
adiplomatique
Novato
Novato
Reações: 0
Mensagens: 13

uso de instâncias diferentes do mesmo objeto

Mensagem por adiplomatique » Qua Set 20, 2017 7:23 pm

prezados,

numa room, tenho quatro instâncias do mesmo objeto inimigo. a minha dúvida é a seguinte:

como faço para que somente uma dessas instâncias (seja a escolha dela aleatória ou predeterminadamente), ao ser destruída, solte um item a ser recolhido pelo player?

valeu pela ajuda!

Avatar do usuário
dkoelho
Novato
Novato
Reações: 0
Mensagens: 18
Localização: holocausto de 1944.

Re: uso de instâncias diferentes do mesmo objeto

Mensagem por dkoelho » Qua Set 20, 2017 11:42 pm

No create deles, cria uma variável tipo "drop = false". Depois na room, vai no que você quer que drope, clica com o direito, vai em "creation code" e digita "drop = true".
Daí só você colocar uma condição no evento do obj_enemy. Algo tipo 

Código: Selecionar todos

if drop
{
   instance_create(x, y, item);
   instance_destroy();
}

Avatar do usuário
Cheguevara
Game Designer
Game Designer
Reações: 0
Mensagens: 44

Re: uso de instâncias diferentes do mesmo objeto

Mensagem por Cheguevara » Qui Set 21, 2017 3:29 pm

Você pode fazer uma checagem pelo "ID", é só colocar caso você queira que o objeto ao colidir com tal, solte um item;

Código: Selecionar todos

instance_create(x+random_range(x1, x2), y+random_range(y1, y2), obj_drop)
instance_destroy(id);

Avatar do usuário
adiplomatique
Novato
Novato
Reações: 0
Mensagens: 13

Re: uso de instâncias diferentes do mesmo objeto

Mensagem por adiplomatique » Qui Set 21, 2017 8:55 pm

DKOELHO,
obrigado pela explicação. aconteceu que quando eu destruo uma das instâncias, a instância onde coloquei o código se destrói automaticamente e libera o item. no entanto, uma maneira predeterminada simples que acabei encontrando foi abrir um evento de destruição e 

Código: Selecionar todos

if id = [nome da instância]
{instance_create(x,y,objeto_item)}
CHE,
acho que me expressei mal. quando mencionei aleatoriamente, quis dizer que não predeterminaria qual delas soltaria o item, mas um código que escolhesse aleatoriamente qual instância despejaria o item. de qualquer maneira, experimentei sua sugestão e deu erro na parte do " instance_destroy(id)", funcionando somente a primeira linha. agradeço também o interesse em responder à dúvida.
se souberem uma maneira em que o código escolha aleatoriamente qual das instâncias vai liberar o item, valeu também! ao jogar, acabei achando que essa opção seria mais legal.

Avatar do usuário
Cheguevara
Game Designer
Game Designer
Reações: 0
Mensagens: 44

Re: uso de instâncias diferentes do mesmo objeto

Mensagem por Cheguevara » Sex Set 22, 2017 8:16 pm

@adiplomatique
Deu erro na parte do "ID", por que você colocou na colisão com o objeto, a colisão já pega o ID, só funcionaria caso você coloca-se no step ou ao apertar alguma tecla, depois que você explicou oque queria é de fato que você vai ter que usar ds_list ou arrays.
Posso estar errado e estar falando merda k, muito tempo sem mecher com GMS

Avatar do usuário
Kapoty
Programador
Programador
Reações: 0
Mensagens: 2

Re: uso de instâncias diferentes do mesmo objeto

Mensagem por Kapoty » Sáb Set 23, 2017 11:33 pm

dkoelho escreveu:No create deles, cria uma variável tipo "drop = false". Depois na room, vai no que você quer que drope, clica com o direito, vai em "creation code" e digita "drop = true".
Daí só você colocar uma condição no evento do obj_enemy. Algo tipo 

Código: Selecionar todos

if drop
{
   instance_create(x, y, item);
   instance_destroy();
}
Faça isso que foi dito pelo dkoelho, e no evento create de algum objeto controle ou algo do tipo coloque:

Código: Selecionar todos

(instance_find(obj_enemy, irandom(instance_number(obj_enemy)-1))).drop=true;

Avatar do usuário
Riccardoric
Membro
Membro
Reações: 0
Mensagens: 24

Contato:

Re: uso de instâncias diferentes do mesmo objeto

Mensagem por Riccardoric » Sáb Set 30, 2017 4:47 pm

Olá, 
Apenas para incrementar... Você pode armazenar o ID dos inimigos ao criá-los, dessa forma:
inimigo[1] = instance_create(x,y,oInimigo);
inimigo[2] = instance_create(x,y,oInimigo);
...
Essas variáveis vão conter o ID de cada objeto criado. Ai é só manipular a vontade

Espero ter ajudado de algum forma

Responder

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 0 visitante