Entrar
Últimos assuntos
» como fazer um objeto seguir?por divin sphere Dom 18 Ago 2024, 18:08
» Procuro de alguém para Modelar/Texturizar/Animar objetos 3D
por un00brn Dom 11 Ago 2024, 11:10
» Retorno da GMBR!!!
por un00brn Dom 11 Ago 2024, 10:52
» Destruição de cenário (estilo DD Tank)
por CoronelZeg Sex 09 Ago 2024, 17:16
» Como destruir uma instancia especifica de um objeto
por josuedemoraes Ter 23 Jul 2024, 00:40
» Automatizar a coleta de id
por GabrielXavier Seg 22 Jul 2024, 18:01
» Preciso de ajuda para concluir um pequeno projeto
por lmoura Qui 27 Jun 2024, 15:45
» ANGULO ACOMPANHAR O OBJETO
por Klinton Rodrigues Qui 27 Jun 2024, 08:34
» Musica reinicia quando sala reinicia
por GabrielXavier Ter 18 Jun 2024, 07:28
» como fazer uma copia de gd
por generico_cube Sex 14 Jun 2024, 15:48
» Square Adventure
por guilherme551 Ter 11 Jun 2024, 09:54
» como posso definir limite de uma variavel
por GabrielXavier Sex 07 Jun 2024, 14:14
» [Resolvido] Dúvida, colisão única de objeto
por vdm842 Sex 24 maio 2024, 09:50
» Servidor de Discord do fórum?
por Super Games Sáb 18 maio 2024, 01:27
» Problemas com a caixa de diálogo, ela é pequena e as letras não cabem dentro
por Rukasu777 Qui 16 maio 2024, 18:10
» Problemas com particulas
por RastaMaan Dom 12 maio 2024, 17:03
» Problema ao entrar por uma porta e voltar por ela
por aminaro Seg 06 maio 2024, 10:08
» Alguém aqui já ganha dinheiro com seus games?
por theguitarmester Ter 30 Abr 2024, 11:43
» Colisões não funcionando
por theguitarmester Ter 30 Abr 2024, 10:16
» Como ajustar velocidade de cada frame da animação no game maker
por pequetux Sex 26 Abr 2024, 16:45
» Preciso de ajuda
por AftonDuGrau Dom 21 Abr 2024, 20:18
» Como faz o evento drawn GUI, não se repetir?
por aminaro Sex 19 Abr 2024, 20:30
» PROBLEMAS COM FÍSICAS DE ÁGUA
por aminaro Ter 16 Abr 2024, 10:07
» JOGADOR PARANDO NO AR QUANDO ATACA
por aminaro Qua 10 Abr 2024, 13:51
» Problemas com texto interativo
por Kaaru72 Dom 07 Abr 2024, 11:31
Como destruir uma instancia especifica de um objeto
2 participantes
Página 1 de 1
Como destruir uma instancia especifica de um objeto
Pessoal..
Essa é minha primeira vez aqui no fórum e gostaria muito de uma ajudinha de vcs:
Tenho um objeto Player (obj_player) que atira (obj_tiro1) contra um Inimigo (obj_inimigo) conforme segue o código abaixo:
STEP do obj_player:
-------------------------------------------------------------------------------------------------------------------------
if(atirando){
_tiro=instance_create_layer(x,y-40,layer,obj_tiro1);
_tiro.direction=90;
_tiro.speed=5;
}
if(_tiro==100010){ // verificando quando for uma instância já conhecida 100010
if(instance_place(_tiro.x,_tiro.y,obj_inimigo)){ // simulando a colisão..Aqui parece ocorrer o ERRO
instance_destroy(_tiro.id); // tentando destruir a instancia 100010
}
}
--------------------------------------------------------------------------------------------------------------
Abaixo o ERRO que aparece:
############################################################################
ERROR in action number 1
of Step Event0 for object obj_player:
Unable to find instance for object index 100010
at gml_Object_obj_player_Step_0 (line 15) - if(instance_place(_tiro.x,_tiro.y,obj_inimigo)){
############################################################################
gml_Object_obj_player_Step_0 (line 15)
A função instance_destroy() parece não reconhecer a instancia _tiro de numero 100010 e sendo assim não reconhecerá demais.
Gostaria de saber como tratar isso dentro do STEP do Player sem recorrer a trabalhar o codigo dentro do objeto Tiro ou Inimigo. Controle total a partir do Player.
Grato se puderem me ajudar
Essa é minha primeira vez aqui no fórum e gostaria muito de uma ajudinha de vcs:
Tenho um objeto Player (obj_player) que atira (obj_tiro1) contra um Inimigo (obj_inimigo) conforme segue o código abaixo:
STEP do obj_player:
-------------------------------------------------------------------------------------------------------------------------
if(atirando){
_tiro=instance_create_layer(x,y-40,layer,obj_tiro1);
_tiro.direction=90;
_tiro.speed=5;
}
if(_tiro==100010){ // verificando quando for uma instância já conhecida 100010
if(instance_place(_tiro.x,_tiro.y,obj_inimigo)){ // simulando a colisão..Aqui parece ocorrer o ERRO
instance_destroy(_tiro.id); // tentando destruir a instancia 100010
}
}
--------------------------------------------------------------------------------------------------------------
Abaixo o ERRO que aparece:
############################################################################
ERROR in action number 1
of Step Event0 for object obj_player:
Unable to find instance for object index 100010
at gml_Object_obj_player_Step_0 (line 15) - if(instance_place(_tiro.x,_tiro.y,obj_inimigo)){
############################################################################
gml_Object_obj_player_Step_0 (line 15)
A função instance_destroy() parece não reconhecer a instancia _tiro de numero 100010 e sendo assim não reconhecerá demais.
Gostaria de saber como tratar isso dentro do STEP do Player sem recorrer a trabalhar o codigo dentro do objeto Tiro ou Inimigo. Controle total a partir do Player.
Grato se puderem me ajudar
josuedemoraes- Games Ranking :
Data de inscrição : 22/07/2024
Reputação : 0
Número de Mensagens : 2
Prêmios :x 0
x 0
x 0
x 0
x 0
x 0
x 0
x 0
x 0
Re: Como destruir uma instancia especifica de um objeto
Você deve usar no OBJTIRO o evento de colisão, no evento de colisão do OBJTIRO com o OBJINIMIGO, você usa algo assim
Ai no step do obj inimigo você checa de a vida do inimigo é menor ou igual a ZERO se for você usa destroi o inimigo:
A lógica é manis ou menos essa, só você adaptar as variáveis para o seu projeto.
- Código:
other.vida -= 30; // Tira 30 de vida do inimigo por exemplo
instance_destroy(); // Destroi o OBJTIRO quando ele acertar o inimigo
Ai no step do obj inimigo você checa de a vida do inimigo é menor ou igual a ZERO se for você usa destroi o inimigo:
- Código:
if(vida<=0) instance_destroy(); // Destroi o inimigo se a vida dele acabar
A lógica é manis ou menos essa, só você adaptar as variáveis para o seu projeto.
GabrielXavier- Games Ranking :
Notas recebidas : A
Data de inscrição : 25/02/2012
Reputação : 45
Número de Mensagens : 403
Prêmios :x 0
x 1
x 0
x 0
x 1
x 1
x 0
x 0
x 0
Plataformas :- Game Maker Studio 2.0
Re: Como destruir uma instancia especifica de um objeto
GabrielXavier escreveu:Você deve usar no OBJTIRO o evento de colisão, no evento de colisão do OBJTIRO com o OBJINIMIGO, você usa algo assim
- Código:
other.vida -= 30; // Tira 30 de vida do inimigo por exemplo
instance_destroy(); // Destroi o OBJTIRO quando ele acertar o inimigo
Ai no step do obj inimigo você checa de a vida do inimigo é menor ou igual a ZERO se for você usa destroi o inimigo:
- Código:
if(vida<=0) instance_destroy(); // Destroi o inimigo se a vida dele acabar
A lógica é manis ou menos essa, só você adaptar as variáveis para o seu projeto.
Grato pela reposta Gabriel mas eu queria que tudo fosse controlado no evento EVENT do objeto player..
Como sou novo na ferramenta GMS estou ainda fuçando mas não consegui encontrar um jeito..
É tipo vc acessar o EVENT de outro objeto via código a partir do EVENT do player..
Mesmo assim grato pela reposta..
josuedemoraes- Games Ranking :
Data de inscrição : 22/07/2024
Reputação : 0
Número de Mensagens : 2
Prêmios :x 0
x 0
x 0
x 0
x 0
x 0
x 0
x 0
x 0
![-](https://2img.net/i/empty.gif)
» Destruir objeto em uma posição específica
» [Resolvido]como destruir um objeto com o codigo em outro objeto?
» Como destruir um objeto ao termino da frase?
» Como Destruir Objeto emcima do mouse?
» Como destruir objeto ao sair da view
» [Resolvido]como destruir um objeto com o codigo em outro objeto?
» Como destruir um objeto ao termino da frase?
» Como Destruir Objeto emcima do mouse?
» Como destruir objeto ao sair da view
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|