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.

Mudar depth de uma instance

Perguntas? A comunidade te ajuda a resolver.
Avatar do usuário
Lunion4saken
Novato
Novato
Reações: 0
Mensagens: 10

Mudar depth de uma instance

Mensagem por Lunion4saken » Seg Fev 27, 2017 9:07 am

Bom dia,
Estou a algum tempo a tentar mudar a depth de instances, ou seja se o meu personagem estiver perto dessa instance ela ficara com depth 300 estando por baixo do background. Se estiver longe ela fica com depth -1 para ficar em cima de tudo.

Código: Selecionar todos

if block1=0{
 block1=instance_nearest(x,y,obj_fog)
 block1.depth=300
}else{
 block1.depth=-1
 block1=instance_nearest(x,y,obj_fog)
 block1.depth=300
}
Eu fiz desta maneira apenas para o bloco que está debaixo de mim, sendo que a primeira parte do código é para não bugar. Sempre que tento usa-lo diz que:

Pop :: Execution Error - Variable references invalid object (-4).depth

Eu penso que não de para usar o comando depth desta maneira. Atualmente estou a experimentar o gamemaker 2, mas tentei também na versão 1.4 e não resultou. 

Alguém sabe que código é que eu deveria tentar para isto resultar?

Avatar do usuário
TootyDev
Novato
Novato
Reações: 0
Mensagens: 10

Re: Mudar depth de uma instance

Mensagem por TootyDev » Seg Fev 27, 2017 3:05 pm

Esse Tópico ficou meio confuso mas pelo o que eu entendi você quer que se o personagem chegar perto ele fique com o Depth de 300 e se ficar longe fique -1

Tem 2 Tipos de fazer essa checagem:
1(Por meio de Colisão):

Código: Selecionar todos

if place_meeting(x+4,y,obj_fog){
block1.depth = 300;
}
else if place_meeting(x-4,y,obj_fog){
block1.depth = 300;
}
else if place_meeting(x,y-4,obj_fog){
block1.depth = 300;
}
else if place_meeting(x,y+4,obj_fog){
block1.depth = 300;
}else{
block.depth = -1;
}
2(Por meio do distance_to_object):

Código: Selecionar todos

if distance_to_object(obj_fog) < 4{
block1.depth = 300;
}else{
block1.depth = -1;
}

Avatar do usuário
Lunion4saken
Novato
Novato
Reações: 0
Mensagens: 10

Re: Mudar depth de uma instance

Mensagem por Lunion4saken » Ter Fev 28, 2017 7:45 am

Eu já usei esse método com o block1=instance_nearest(x,y,obj_fog), o problema é que não me esta a deixar usar o comando block1.depth, dando o erro Pop :: Execution Error - Variable references invalid object (-4).depth

Avatar do usuário
TootyDev
Novato
Novato
Reações: 0
Mensagens: 10

Re: Mudar depth de uma instance

Mensagem por TootyDev » Ter Fev 28, 2017 6:01 pm

Tente não usar números dentro de nomes de variáveis, tente usar os arrays ou mude o nome da variável de block1 para block_um e veja se o erro desaparece.

Avatar do usuário
Lunion4saken
Novato
Novato
Reações: 0
Mensagens: 10

Re: Mudar depth de uma instance

Mensagem por Lunion4saken » Qua Mar 01, 2017 8:23 am

Tentei e não é esse o problema está a dar o mesmo erro.

Avatar do usuário
Dust
Membro
Membro
Reações: 0
Mensagens: 109
Localização: Santa Catarina

Re: Mudar depth de uma instance

Mensagem por Dust » Qua Mar 01, 2017 9:21 am

ja tentou fazer com distance_to_object(objeto_x)? Algo do tipo:

Código: Selecionar todos

if distance_to_object(obj_player)<=10 {depth=300} else {depth=-1}

Avatar do usuário
junior.rod2
Moderador
Moderador
Reações: 0
Mensagens: 101

Re: Mudar depth de uma instance

Mensagem por junior.rod2 » Qua Mar 01, 2017 11:19 am

Estranho esse erro, já checou se o tal do obj_fog esta na room antes de chamar esse código ai.
Se a resposta do amigo acima não resolver o problema, considere postar o editável do projeto para a gente dar uma olhada.

Avatar do usuário
Lunion4saken
Novato
Novato
Reações: 0
Mensagens: 10

Re: Mudar depth de uma instance

Mensagem por Lunion4saken » Qua Mar 01, 2017 2:40 pm

Thx junior.rod2, esqueci-me que o obj_fog é criado no room atravez do obj_creation. e no momento em que o player é criado o obj_fog ainda não existe, bastou criar uma variavel que diz que não fazes nada até o obj_creation terminar.

Dust isso resultava, mas teria 100+ objectos a cada step a ver se estavam ou não a x pixeis do meu personagens o que causaria bastante lag.

Avatar do usuário
junior.rod2
Moderador
Moderador
Reações: 0
Mensagens: 101

Re: Mudar depth de uma instance

Mensagem por junior.rod2 » Qua Mar 01, 2017 3:28 pm

Fico feliz que o seu problema foi resolvido, é incrível com as vezes deixamos passar algo pequeno que acaba prejudicando o a execução do projeto inteiro.
Bom, problema resolvido e tópico trancado...

Trancado

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 2 visitantes