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. |
Parents - GMS Tópico resolvido
- GM_PC_Jogos
- Novato
- Reações: 0
- Mensagens: 15
Parents - GMS
Boa tarde para todos.
Tenho o objeto = obj_tiro
evento create:
speed = 20;
direction = 0;
dano = 10
evento collision com o obj_inimigo
instance_destroy();
other.vida -= dano;
E com o objeto obj_inimigo:
evento create:
vida = 100
evento step:
if(vida <= 0){
instance_destroy();
}
Minha duvida é a seguinte: O código acima está funcionando perfeitamente, (quando cada instância do obj_tiro acerta cada instância do obj_inimigo, diminui em 10 a vida de cada inimigo na tela, e si a vida for <= 0, a instância é destruída).
Mas como eu pretendo criar muitos inimigos diferentes, gostaria de criar um objeto que seja parente (pai) que pudesse controlar isso, porque vou ter que colocar um evento collision para cada inimigo criado, e ai ficaria um monte de evento collision.
Tentei algumas coisas, mas sem sucesso, pois cada inimigo terá uma quantidade de vida diferente.
tipo...criei o obj_inimigos e atribui o obj_inimigo como filho...e o obj_tiro com colisão com o obj_inimigos(pai), mas depois não sei como fazer.
Existe alguma maneira de fazer isso usando um objeto que seja parente para que o código fique mais organizado e limpo?
Obrigado pela atenção de todos.
Tenho o objeto = obj_tiro
evento create:
speed = 20;
direction = 0;
dano = 10
evento collision com o obj_inimigo
instance_destroy();
other.vida -= dano;
E com o objeto obj_inimigo:
evento create:
vida = 100
evento step:
if(vida <= 0){
instance_destroy();
}
Minha duvida é a seguinte: O código acima está funcionando perfeitamente, (quando cada instância do obj_tiro acerta cada instância do obj_inimigo, diminui em 10 a vida de cada inimigo na tela, e si a vida for <= 0, a instância é destruída).
Mas como eu pretendo criar muitos inimigos diferentes, gostaria de criar um objeto que seja parente (pai) que pudesse controlar isso, porque vou ter que colocar um evento collision para cada inimigo criado, e ai ficaria um monte de evento collision.
Tentei algumas coisas, mas sem sucesso, pois cada inimigo terá uma quantidade de vida diferente.
tipo...criei o obj_inimigos e atribui o obj_inimigo como filho...e o obj_tiro com colisão com o obj_inimigos(pai), mas depois não sei como fazer.
Existe alguma maneira de fazer isso usando um objeto que seja parente para que o código fique mais organizado e limpo?
Obrigado pela atenção de todos.
Re: Parentes Tópico resolvido
Siga os passos:
✔ Crie o objeto enemy_parent que vai ser pai de todos.
✔ Adicione esses códigos que você quer que tenham em todos.
✔ Crie seus inimigos diferentes: enemy_01, enemy_02 e etc. E selecione o parent como o enemy_parent.
O problema vem agora. Se você quer adicionar um novo código no evento Step do enemy_02, tu tem que adicionar a função event_enhithed() no inicio:
Caso insira um código sem essa função, ela vai ser substituída, ou seja, o código (no seu caso) de morrer após a vida ser menor que zero não acontece. Se não vai fazer nenhuma alteração no evento, nem adicione ele.
Espero ter elucidado tua dúvida.
✔ Crie o objeto enemy_parent que vai ser pai de todos.
✔ Adicione esses códigos que você quer que tenham em todos.
✔ Crie seus inimigos diferentes: enemy_01, enemy_02 e etc. E selecione o parent como o enemy_parent.
O problema vem agora. Se você quer adicionar um novo código no evento Step do enemy_02, tu tem que adicionar a função event_enhithed() no inicio:
Código: Selecionar todos
// Executa os códigos do Step do pai
event_inherited();
// insira seus códigos de 'enemy_02' aqui
Espero ter elucidado tua dúvida.
- GM_PC_Jogos
- Novato
- Reações: 0
- Mensagens: 15
Re: Parents - GMS
Muito obrigado Alex pela ajuda.
Era isso mesmo que estava faltando. Sem essa função event_enhithed(), eu colocava os códigos e não funcionava.
Vlw mesmo....
Era isso mesmo que estava faltando. Sem essa função event_enhithed(), eu colocava os códigos e não funcionava.
Vlw mesmo....
Quem está online
Usuários navegando neste fórum: Semrush [Bot] e 0 visitante