Conectar-se
Últimos assuntos
mudar a direção de um inimigo ao tocar na paredeSab 19 Jan 2019, 15:20PlumogumdrSalvar variaveisQui 10 Jan 2019, 03:42elielmattosakatsuki minhas spritesSeg 07 Jan 2019, 16:24ArcherzinColisãoSeg 07 Jan 2019, 11:53Alex FCAnimação travadaSeg 07 Jan 2019, 01:31guilhermigg.gmJogo de Mensagens de TextoSeg 07 Jan 2019, 00:55guilhermigg.gmMinhas dúvidas.Qua 02 Jan 2019, 03:09DSRpOLProblema com tiroDom 30 Dez 2018, 21:51Pikachu186557Riscos na tela nas mensagens de diálogoSex 28 Dez 2018, 23:57goliveiraYu-Gi-Oh! gmlSeg 24 Dez 2018, 11:58trevor
Quem está conectado
21 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 21 Visitantes

Nenhum

Ver toda a lista


Compartilhe
Ir em baixo
avatar
Ranking : Sem avaliações
Data de inscrição : 07/01/2019
Número de Mensagens : 1
Insígnias de JAM :

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

Colisão

em Seg 07 Jan 2019, 01:39
bom, não sei bem especificar isso mas, quando voce pula em alguma parede, o personagem fica preso, e se voce continuar pulando, ele vai escalando, já tentei colocar mascara de colisão mas não ajudou em nada.
avatar
Ranking : Nota A
Notas recebidas : B A
Data de inscrição : 20/12/2008
Número de Mensagens : 2518
Insígnias de JAM :

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

Prêmios
   : 2
   : 1
   : 1
Ver perfil do usuáriohttp://redscreensoft.blogspot.com

Re: Colisão

em Seg 07 Jan 2019, 11:53
Tem vários pontos a considerar pra isso acontecer:

- Dimensões da sprite;
- Velocidade;
- Checagem de colisão em posição futura;

A combinação desses 3 itens interfere no movimento.

Na minha assinatura tem link pra tutoriais de movimentação e colisão (Em texto).

Abra o spoiler abaixo e veja um exemplo de código de plataforma básico. (lembre-se de marcar os blocos com a opção solid)

Abraços

Spoiler:
CREATE:

Código:
xspeed = 0;
yspeed = 0;


STEP:

Código:
// Pulo
if keyboard_check_pressed(vk_up) and !place_free(x, y + 4)
{
    yspeed = - 15;
}

// Esquerda-Direita
if keyboard_check(vk_right) xspeed = 5;
else if keyboard_check(vk_left) xspeed = -5;
else xspeed = 0;

// Gravidade
yspeed += 1;

// Limita velocidade de queda
if yspeed > 10 yspeed = 10;

// Movimento horizontal
repeat(abs(xspeed))
{
    if place_free(x + sign(xspeed), y) x += sign(xspeed);
}

// Movimento vertical
repeat(abs(yspeed))
{
    if place_free(x, y + sign(yspeed)) y += sign(yspeed)  else yspeed = 0;
}

_________________

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



Tutoriais e vídeo aulas de programação! Clique no Banner e confira!
Voltar ao Topo
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum