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.

Recriar objeto destruido Tópico resolvido

Perguntas? A comunidade te ajuda a resolver.
Avatar do usuário
chicoweb
Membro
Membro
Reações: 0
Mensagens: 135

Recriar objeto destruido

Mensagem por chicoweb » Sex Abr 20, 2018 6:29 pm

Fala Galera quanto tempo que bom saber que essa comunidade ainda está de pé apesar de tantos trancos e barrancos :blz: :feliz:.

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:

Código: Selecionar todos

instance_recreate(obj_spaw)
Meus games:
Jump James - Aventura/Estratégia/Robô
Freedom of Pala Pala - Aventura/Estratégia
Prisioneira - RPG/Bloco/Ação

Avatar do usuário
J_Marlon
Membro
Membro
Reações: 1
Mensagens: 41

Re: Recriar objeto destruido

Mensagem por J_Marlon » Sex Abr 20, 2018 8:52 pm

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.

Avatar do usuário
chicoweb
Membro
Membro
Reações: 0
Mensagens: 135

Re: Recriar objeto destruido

Mensagem por chicoweb » Sex Abr 20, 2018 9:21 pm

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.
Meus games:
Jump James - Aventura/Estratégia/Robô
Freedom of Pala Pala - Aventura/Estratégia
Prisioneira - RPG/Bloco/Ação

Avatar do usuário
None
Colaborador
Colaborador
Reações: 2
Mensagens: 286

Re: Recriar objeto destruido  Tópico resolvido

Mensagem por None » Sex Abr 20, 2018 9:29 pm

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 >_>
Tutorial de jogo de plataforma completo: https://youtu.be/MMUy_bMKqPk
Como criar um jogo de RPG Japonês no estilo Final Fantasy https://goo.gl/efr6fx

Avatar do usuário
chicoweb
Membro
Membro
Reações: 0
Mensagens: 135

Re: Recriar objeto destruido

Mensagem por chicoweb » Sex Abr 20, 2018 10:31 pm

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 :nervoso:, 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.
Meus games:
Jump James - Aventura/Estratégia/Robô
Freedom of Pala Pala - Aventura/Estratégia
Prisioneira - RPG/Bloco/Ação

Trancado

Quem está online

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