Conectar-se
Quem está conectado
21 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 21 Visitantes

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Data de inscrição : 18/01/2015
Número de Mensagens : 37
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 6
Ver perfil do usuário

Como fazer uma instancia seguir outro objeto

em Dom 17 Maio 2015, 12:16
Olá, eu criei um objeto Obj_LifeControl q controla a vida do meu personagem através das variáveis

Obj_Leona.life e Obj_Leona.maxlife

e faço ele seguir meu personagem através dos comandos

x = Obj_Leona.x
y = Obj_Leona.y

Até aqui tudo OK. O meu problema consiste em querer expandir o controle do Obj_LifeControl a todos os objetos. Para isso estou utilizando o comando

instance_create(x,y,Obj_LifeControl)

em cada objeto e quero que o Obj_LifeControl siga oo objeto que o criou.

O comando

obejto_index

me retorna a id do objeto que criou essa instancia (pelo menos foi assim que eu entendi do manual do GMS, me corrijam se eu estiver errado).
Eu quero associar às variáveis x e y do Obj_LifeControl às variáveis x e y do objeto criador.
Estou usando esse código:

with (objeto_index)
{
x = other.x
y = other.y
}

mas o Obj_LifeControl não segue o meu personagem....
Já tentei várias coisas, mas nenhuma deu certo...
Eu acho q estou no caminho certo, mas deve ser só uma besteirinha que não estou conseguindo acertar.

Aguardando respostas.
avatar
Ranking : Nota B
Notas recebidas : C + C + B
Data de inscrição : 28/07/2012
Número de Mensagens : 1281
Insígnias de JAM :

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

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

Re: Como fazer uma instancia seguir outro objeto

em Dom 17 Maio 2015, 12:20
me corrijam se eu estiver errado

Sim você QUASE entendeu. Todo objeto tem seu object_index que refere a SI MESMO. Pra ascesar o outro você pode pegar o retorno de instance_create:
Código:

ObjetoCriado = instance_create(x,y,Obj_LifeControl);
E então você pode usar a variavel como se fosse o objeto.
avatar
Data de inscrição : 18/01/2015
Número de Mensagens : 37
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 6
Ver perfil do usuário

Re: Como fazer uma instancia seguir outro objeto

em Dom 17 Maio 2015, 12:29
Esse codigo vai no objeto criador ou no objeto criado??
avatar
Ranking : Nota B
Notas recebidas : C + C + B
Data de inscrição : 28/07/2012
Número de Mensagens : 1281
Insígnias de JAM :

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

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

Re: Como fazer uma instancia seguir outro objeto

em Dom 17 Maio 2015, 12:39
No objeto Criador. Ele vai possuir o 'id' do objeto criado.
E então você pode faze-lo seguir.

No objeto CRIADOR
Código:

filho = instance_create(x,y,Obj_LifeControl);
No evento Step do CRIADOR
Código:

filho.x = x;
filho.y = y;
Talvez você vai ter uma pequena falha de movimento(quase imperceptível), teste e você verá que o objeto filho vai ficar um pouquinho atrasado. Mas isso já é outra coisa.
avatar
Data de inscrição : 18/01/2015
Número de Mensagens : 37
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 6
Ver perfil do usuário

Re: Como fazer uma instancia seguir outro objeto

em Dom 17 Maio 2015, 12:51
Deu certo... Eu não estava entendo a isntaxe das funções... agora eu saquei...

Não é a instancia criada que acessa as funções do seu criador, mas sim, o criador que altera as informações da instancia criada.
avatar
Data de inscrição : 18/01/2015
Número de Mensagens : 37
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 6
Ver perfil do usuário

Re: Como fazer uma instancia seguir outro objeto

em Dom 17 Maio 2015, 12:54
eu usei isso

with (objeto_criado)
{
x = other.x
y = other.y
}


por enquanto está dando certo.. vamos ver se isso gera algum problema quando eu tiver vários criadores diferentes para o mesmo criado.
Conteúdo patrocinado

Re: Como fazer uma instancia seguir outro objeto

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