Página 1 de 1
Recriar objeto destruido
Enviado: Sex Abr 20, 2018 6:29 pm
por chicoweb
Fala Galera quanto tempo que bom saber que essa comunidade ainda está de pé apesar de tantos trancos e barrancos
.
O lance é o seguinte:
- Eu tenho uma room com um objeto chamado obj_spaw, ele serve para indicar onde os inimigos vão nascer, eu simplesmente saio esparramando el pela room e pronto um outro objeto cuida de fazer monstros nascerem onde ele está.
- O que acontece é que a room é persistente (Tem que ser), então quando eu dou um room_start para reiniciar a fase esses obj_spaw não voltam mais.
- Tem alguma maneira de fazer somente eles renascerem exatamente onde estavam via código?
Seria algo assim:
Re: Recriar objeto destruido
Enviado: Sex Abr 20, 2018 8:52 pm
por J_Marlon
Os objetos obj_spaw são destruídos em algum momento? Se sim, é normal que não reapareçam nas rooms persistentes.
O mais perto de um "instance_recreate()" seria usar um objeto de controle para verificar quando uma instância não existe na room e então criá-la.
Algo como:
Código: Selecionar todos
if (!instance_exists(obj_spaw))
instance_create(x, y, obj_spaw);
Outra forma mais simples, seria armazenar o
xstart e
ystart da instância para criar outra no mesmo local ao ser destruída.
Código: Selecionar todos
Evento Create:
xx = xstart;
yy = ystart;
Evento Destroy:
instance_create(xx, yy, obj_spaw)
Enfim, esses são só alguns exemplos básicos mas há muitas maneiras de contornar o problema que você falou.
Re: Recriar objeto destruido
Enviado: Sex Abr 20, 2018 9:21 pm
por chicoweb
J_Marlon escreveu:
Código: Selecionar todos
Evento Create:
xx = xstart;
yy = ystart;
Evento Destroy:
instance_create(xx, yy, obj_spaw)
Muito boa essa dica quase seviu o problema é que tem um evento assim:
Código: Selecionar todos
with obj_inimigo_spaw{
// Cria o monstro no exato local do spaw
ini = instance_create(x, y, obj_inimigo)
// Destroi o spaw pra não nascer monstro de novo
instance_destroy()
}
Se eu der um create dentro do ondestroy como vc citou, esse código ai de cima vira um loop infinito.
Re: Recriar objeto destruido Tópico resolvido
Enviado: Sex Abr 20, 2018 9:29 pm
por None
Olá, eu não tenho certeza se entendi a sua lógica
Você possui um objeto que controla a criação do objeto_inimigo_spaw e este objeto por sua vez cria o inimigo, mas quem criar o código dele é este primeiro objeto?
Se for isso há alguns jeitos bem simples, um é retirar este with que você esta usando e colocar o código no destroy event do spaw e por sua vez no destroy do inimigo você faz ele criar o spaw no xstart dele e no ystart dele.
Outro jeito seria usar o instance_change, você muda uma instância na outra, mas eu não gosto de usar o instance_change >_>
Re: Recriar objeto destruido
Enviado: Sex Abr 20, 2018 10:31 pm
por chicoweb
Código: Selecionar todos
e por sua vez no destroy do inimigo você faz ele criar o spaw no xstart dele e no ystart dele.
Como que eu não pensei nisso antes
, muito simples por isso é bom consultar vocês kkk.
A lógica é: Quando o inimigo morre ele vira spaw de volta.
Nos que ficaram vivos não precisa porque eles vão continuar na fase.
Obrigado a todos essa lógica simples vai resolver, quando eu terminar de atualizar o game eu informo aqui se deu certo mesmo.