Instância do Objeto

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Instância do Objeto

Mensagem por junilinho em Qui 22 Ago 2013, 13:41

Alô, Alô!
Minha duvida é simples e rápida, como faço para diferenciar duas ou mais instâncias de um mesmo obj em um mapa do jogo ?

Mas como assim ?

Simples, suponhamos que tenho dois Objetos, um chamado Soldado, e outro chamado Monstro, eu coloco um monstro para atirar e seguir um soldado, porém se houver mais de uma instância do mesmo objeto, ou seja, se houver mais de um soldado no mapa, ele pode acabar seguindo um e atirando em outro, e acontece o mesmo quando um Soldado mira em um monstro.

Se alguém tiver como explicar... tutorial... engine... eu agradeceria cheers 

junilinho

Número de Mensagens : 15
Idade : 20
Data de inscrição : 16/08/2013
Reputação : 5
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Instância do Objeto

Mensagem por Alex FC em Qui 22 Ago 2013, 15:09

As instâncias tem uma variável que as diferencia, ela se chama id.

Há varias maneiras de se conseguir a id de um objeto durante o jogo.

Exemplo 1: Seguir o objeto Soldado mais perto (Evento Step):

Código:
i = instance_nearest(x,y,Soldado)
Agora a variável i guardou a id da instância do objeto Soldado que estiver mais perto. Logo se quiser que siga essa instância de Soldado só usar:

Código:
move_towards_point(i.x,i.y,5)
Ou se quiser executar alguns comandos para essa instância:

Código:
with(i)
{
    instance_destroy();
}
Esse código destrói a instância.

Há varias formas de se conseguir o id de uma instância.

Pode ser quando você cria-la:

Código:
i = instance_create(x,y,Soldado)
Você pode procurar uma instância por sua ordem de criação:

Código:
i = instance_find(Soldado,0)
No código acima ele pega a primeira instância do objeto Soldado. Lembrando que começa por zero.

Você pode pegar a id em uma colisão também:

Código:
i = instance_place(x,y,Soldado)
O código acima pega a id quando se colide com a instância de Soldado.

Mas podem ocorrer erros caso não exista nenhuma instância do objeto selecionado. Então antes de tudo você deve verificar sua existência:

Código:
if instance_exists(Soldado)
{
    //Seu código aqui
}
Para saber quais funções retornam o id de uma instância, consulte a documentação pressionando F1.

Espero que ajude.

FLWS!

Alex FC

Ranking : Nota A
Número de Mensagens : 2503
Idade : 23
Data de inscrição : 20/12/2008
Notas recebidas : B A
Reputação : 174
Insignia 1 x 1 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 1
   : 1

http://redscreensoft.blogspot.com

Voltar ao Topo Ir em baixo

Re: Instância do Objeto

Mensagem por fredcobain em Qui 05 Set 2013, 00:00

Tem um tutorial fantástico sobre id's na seção ESCOLHA DA STAFF. Dê uma olhada.

fredcobain

Ranking : Sem avaliações
Número de Mensagens : 691
Idade : 35
Data de inscrição : 14/04/2011
Reputação : 162
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Instância do Objeto

Mensagem por saim em Qui 05 Set 2013, 08:29

Tem um bocado de funções que retornam a id da instância. Instance_place, instance_position, um monte. Procure funções de colisão (tem um tutorial do PedroX a respeito).
Outra coisa que vc precisa saber é que no EVENTO de colisão, o objeto "other" passa a ser a instância colidida.

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Re: Instância do Objeto

Mensagem por Conteúdo patrocinado Hoje à(s) 07:42


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum