Conectar-se
Quem está conectado
26 usuários online :: 1 usuário cadastrado, Nenhum Invisível e 25 Visitantes

CRP-Max

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Data de inscrição : 16/08/2013
Número de Mensagens : 15
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 5

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Instância do Objeto

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 
avatar
Ranking : Nota A
Notas recebidas : B A
Data de inscrição : 20/12/2008
Número de Mensagens : 2516
Insígnias de JAM :

Insignia 1x 1 Insignia 2x 0 Insignia 3x 0
Reputação : 177

Prêmios
   : 2
   : 1
   : 1
Ver perfil do usuáriohttp://redscreensoft.blogspot.com

Re: Instância do Objeto

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!
avatar
Ranking : Sem avaliações
Data de inscrição : 14/04/2011
Número de Mensagens : 691
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 162

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Instância do Objeto

em Qui 05 Set 2013, 00:00
Tem um tutorial fantástico sobre id's na seção ESCOLHA DA STAFF. Dê uma olhada.
avatar
Ranking : Nota B
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Número de Mensagens : 2964
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 121

Prêmios
   : 1
   : 0
   : 3
Ver perfil do usuário

Re: Instância do Objeto

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.
Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum