GM desconsiderando máscara e colidindo com sprite inteira Tópico resolvido

Perguntas? A comunidade te ajuda a resolver.
Avatar do usuário
Mysterious Stranger
Artista
Artista
Mensagens: 62
Localização: BH

 Likes dados: 2
Likes recebidos: 1
Contato:

GM desconsiderando máscara e colidindo com sprite inteira

Mensagem por Mysterious Stranger » Qua Jan 12, 2022 5:00 pm

Boa tarde, pessoal.

Eu estou com um problema q surgiu aqui. Primeira vez q acontece. Não sei se mudaram algo nessas últimas builds. Eu estou fazendo um jogo de plataforma com essa formiga. Ela tem bastante espaço vazio e eu defini a máscara aí onde tá vermelho. Estou usando a função place_meeting() e era para o GM considerar a máscara para a colisão, mas ele está considerando o espaço vazio também. Aí fica parecendo que tem uma parede invisível entre o personagem e o chão ou as paredes.

Características do meu objeto:
- Estou carregando a sprite pelo comando de desenho draw_sprite_ext(), mas estou definindo a mesma também no STEP informando uma variável sprite = SPRITE_FORMIGA e setando a mask_index = sprite.


// linha de código da colisão
if( place_meeting( x + behavior.hspd, y, block ) ){
... ações
}


Onde behavior.hspd é a velocidade horizontal e block o objeto na qual a formiga colide.

Valeu qualquer luz.

Avatar do usuário
All-x
Administrador
Administrador
Mensagens: 571
Localização: Itaporã-MS

 Likes dados: 1
Likes recebidos: 4
Contato:

Re: GM desconsiderando máscara e colidindo com sprite inteira  Tópico resolvido

Mensagem por All-x » Qua Jan 12, 2022 5:16 pm

Sempre é bom fazer um debug pra saber se essa é realmente sua mascara que está sendo utilizada. Coloque isso no Draw da formiga:

Código: Selecionar todos

// Desenha a si mesmo
draw_self();

// Desenha caixa de colisão (Bounding Box)
draw_rectangle_color(bbox_left, bbox_top, bbox_right, bbox_bottom, c_red, c_red, c_red, c_red, 1);

// Desenha o nome da sprite que está utilizando no momento como máscara
draw_text(x, bbox_bottom + 8, sprite_get_name(mask_index));
Geralmente eu crio uma máscara separada, um retângulo mesmo. Pois dependendo como configurou a sprite, cada frame pode ter uma mascara de tamanho diferente.
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
Mysterious Stranger
Artista
Artista
Mensagens: 62
Localização: BH

 Likes dados: 2
Likes recebidos: 1
Contato:

Re: GM desconsiderando máscara e colidindo com sprite inteira

Mensagem por Mysterious Stranger » Qua Jan 12, 2022 5:37 pm

All-x escreveu: Qua Jan 12, 2022 5:16 pm Sempre é bom fazer um debug pra saber se essa é realmente sua mascara que está sendo utilizada. Coloque isso no Draw da formiga:

Código: Selecionar todos

// Desenha a si mesmo
draw_self();

// Desenha caixa de colisão (Bounding Box)
draw_rectangle_color(bbox_left, bbox_top, bbox_right, bbox_bottom, c_red, c_red, c_red, c_red, 1);

// Desenha o nome da sprite que está utilizando no momento como máscara
draw_text(x, bbox_bottom + 8, sprite_get_name(mask_index));
Geralmente eu crio uma máscara separada, um retângulo mesmo. Pois dependendo como configurou a sprite, cada frame pode ter uma mascara de tamanho diferente.
Ahhh já sei o q houve. Ver a máscara me ajudou! Na real a máscara está certa, mas eu defini a sprite pra escala de 50%, mas a a máscara não diminui junto.
Valeu demais, companheiro!

Eu vou pedir pro artista diminuir as sprites pela metade. Tem alguma função do GM que eu possa usar pra diminuir a sprite de fato e não só redesenhar ela menor?

Avatar do usuário
All-x
Administrador
Administrador
Mensagens: 571
Localização: Itaporã-MS

 Likes dados: 1
Likes recebidos: 4
Contato:

Re: GM desconsiderando máscara e colidindo com sprite inteira

Mensagem por All-x » Qua Jan 12, 2022 5:43 pm

Mysterious Stranger escreveu: Qua Jan 12, 2022 5:37 pm Eu vou pedir pro artista diminuir as sprites pela metade. Tem alguma função do GM que eu possa usar pra diminuir a sprite de fato e não só redesenhar ela menor?
image_xscale e image_yscale. Ex: reduzir 50%:

Código: Selecionar todos

image_xscale = 0.5;
image_yscale = 0.5;
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
Mysterious Stranger
Artista
Artista
Mensagens: 62
Localização: BH

 Likes dados: 2
Likes recebidos: 1
Contato:

Re: GM desconsiderando máscara e colidindo com sprite inteira

Mensagem por Mysterious Stranger » Qua Jan 12, 2022 6:55 pm

All-x escreveu: Qua Jan 12, 2022 5:43 pm
Mysterious Stranger escreveu: Qua Jan 12, 2022 5:37 pm Eu vou pedir pro artista diminuir as sprites pela metade. Tem alguma função do GM que eu possa usar pra diminuir a sprite de fato e não só redesenhar ela menor?
image_xscale e image_yscale. Ex: reduzir 50%:

Código: Selecionar todos

image_xscale = 0.5;
image_yscale = 0.5;
Ok. Vou usar essas funções. Valeu de novo!

Responder

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 0 visitante