Página 1 de 1
uso de instâncias diferentes do mesmo objeto
Enviado: Qua Set 20, 2017 7:23 pm
por adiplomatique
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!
Re: uso de instâncias diferentes do mesmo objeto
Enviado: Qua Set 20, 2017 11:42 pm
por dkoelho
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();
}
Re: uso de instâncias diferentes do mesmo objeto
Enviado: Qui Set 21, 2017 3:29 pm
por Cheguevara
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);
Re: uso de instâncias diferentes do mesmo objeto
Enviado: Qui Set 21, 2017 8:55 pm
por adiplomatique
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.
Re: uso de instâncias diferentes do mesmo objeto
Enviado: Sex Set 22, 2017 8:16 pm
por Cheguevara
@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
Re: uso de instâncias diferentes do mesmo objeto
Enviado: Sáb Set 23, 2017 11:33 pm
por Kapoty
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;
Re: uso de instâncias diferentes do mesmo objeto
Enviado: Sáb Set 30, 2017 4:47 pm
por Riccardoric
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