Christian
Membro
Membro
Autor
Mensagens: 43
Registrado em: Sáb Jun 18, 2016 10:54 pm
Karma: 29

Chegar posição em outro objeto

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!!

Tags:
 
Avatar do usuário
Alex FC
Administrador
Administrador
Mensagens: 510
Registrado em: Dom Abr 24, 2016 11:50 pm
Localização: Itaporã-MS
Karma: 886

Contato:

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

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:

x = other.x + 16;


Se for no Step, tu tem que achar a instância que está colidindo com você e ai sim posicionar:

// 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/
1
Começando com o Game Maker? Olhou para assinatura certa!

Imagem

Tutoriais e vídeo aulas de programação! Clique no Banner e confira!
 
Christian
Membro
Membro
Autor
Mensagens: 43
Registrado em: Sáb Jun 18, 2016 10:54 pm
Karma: 29

Re: Chegar posição em outro objeto

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:

x = other.x + 16;


Se for no Step, tu tem que achar a instância que está colidindo com você e ai sim posicionar:

// 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
Alex FC
Administrador
Administrador
Mensagens: 510
Registrado em: Dom Abr 24, 2016 11:50 pm
Localização: Itaporã-MS
Karma: 886

Contato:

Re: Chegar posição em outro objeto

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!

Quem está online

Usuários navegando neste fórum: Google [Bot] e 6 visitantes