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.

Chegar posição em outro objeto Tópico resolvido

Perguntas? A comunidade te ajuda a resolver.
Avatar do usuário
Christian
Membro
Membro
Reações: 0
Mensagens: 75

Chegar posição em outro objeto

Mensagem por Christian » Sex Ago 16, 2019 12:58 pm

Oi pessoal!

Bom, minha dúvida é a seguinte. Tenho um objeto (objEscada)
Assim que eu aperto pra cima eu consigo "alinhar" usando
x = objEscada.x + 16;

Aí que vem o problema, quando tem mais de uma escada na sala o player não se alinha com outras escadas somente com uma.

# # #
Se eu tentar subir na escada 3# ele automaticamente vai para a escada 1#.

Se alguém puder me ajudar eu agradeço!!

Avatar do usuário
All-x
Administrador
Administrador
Reações: 8
Mensagens: 621
Localização: Dourados-MS

Contato:

Re: Chegar posição em outro objeto  Tópico resolvido

Mensagem por All-x » Sex Ago 16, 2019 1:12 pm

objEscada, refere-se ao objeto, o que você tem na room são instâncias (Cópias) desse objeto. Cada cópia tem seu id único (Como se fosse o CPF). Se você usar objEscada ele vai pegar a primeira cópia apenas.

Não sei como você está fazendo, usando o evento de colisão ou Step. Se estiver usando o evento de colisão basta utilizar other para resolver:

Código: Selecionar todos

x = other.x + 16;
Se for no Step, tu tem que achar a instância que está colidindo com você e ai sim posicionar:

Código: Selecionar todos

// Pega o id da instância do objEscada que está colidindo guarda em '_escada'
var _escada = instance_place(x, y, objEscada);

// Se tem alguma escada na colisão
if _escada != noone
{
    x = _escada.x + 16;
}
Espero que ajude.

Abraço o/
Começando com o Game Maker? Olhou para assinatura certa!

Imagem

Tutoriais e vídeo aulas de programação! Clique no Banner e confira!

Avatar do usuário
Christian
Membro
Membro
Reações: 0
Mensagens: 75

Re: Chegar posição em outro objeto

Mensagem por Christian » Sex Ago 16, 2019 4:18 pm

Alex FC escreveu:objEscada, refere-se ao objeto, o que você tem na room são instâncias (Cópias) desse objeto. Cada cópia tem seu id único (Como se fosse o CPF). Se você usar objEscada ele vai pegar a primeira cópia apenas.

Não sei como você está fazendo, usando o evento de colisão ou Step. Se estiver usando o evento de colisão basta utilizar other para resolver:

Código: Selecionar todos

x = other.x + 16;
Se for no Step, tu tem que achar a instância que está colidindo com você e ai sim posicionar:

Código: Selecionar todos

// Pega o id da instância do objEscada que está colidindo guarda em '_escada'
var _escada = instance_place(x, y, objEscada);

// Se tem alguma escada na colisão
if _escada != noone
{
    x = _escada.x + 16;
}
Espero que ajude.

Abraço o/

Eu estava usando place_meeting para checar a colisão mas não estava dando certo.

Amigo, agradeço a sua ajuda!!! Tú é um mito!!! Conseguiu resolver meu problema

Avatar do usuário
All-x
Administrador
Administrador
Reações: 8
Mensagens: 621
Localização: Dourados-MS

Contato:

Re: Chegar posição em outro objeto

Mensagem por All-x » Sex Ago 16, 2019 4:31 pm

Por nada o/

Caso precise tenho um tutorial sobre essas funções de colisão:

COLISÕES SIMPLES

Tópico trancado.
Começando com o Game Maker? Olhou para assinatura certa!

Imagem

Tutoriais e vídeo aulas de programação! Clique no Banner e confira!

Trancado

Quem está online

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