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.

Colisão avançada

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

Contato:

Colisão avançada

Mensagem por Noob4Fun » Seg Jun 13, 2016 5:12 pm

Olá pessoal, queria saber se há algum método de fazer uma colisão com um objecto mais rápida que a original, é que no meu jogo eu movimento um objecto com o rato e se for rápido a colisão não reconhece a tempo e buga... o que posso fazer?

Obrigado desde já

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

Re: Colisão avançada

Mensagem por Dust » Seg Jun 13, 2016 6:33 pm

Então cara, acho que esse teu problema de colisão deve ser porque você nao está usando o if place_free, ou seja, você não está checando se 1pixel ou mais estão livres a frente, você ta apenas fazendo o player andar sempre de 2 em 2 pixels com o x+=2, quando agente usa esse comando, o player nao estara se movendo e sim se teleportando, e no momento que você encosta em algum obj, o seu player para.
Troque o movimento do seu player para esse:

Código: Selecionar todos

repeat(1)//troque esse numero 1 para a velocidade desejada
if keyboard_check(vk_left) && place_free(x+1,y) {x+=1} //aqui você não muda nada, a nao ser que você troque para right e o x para -1, na real eu nem sei se botei certo kkk
ou seja, toda vez que você andar ele ira verificar se esta livre 1 pixel a frente, e o repeat sera a velocidade :)
e usando esse código você não ira necessitar ficar sempre criando um evento de colisao com paredes diferentes, ou caixas diferentes.
Flw!

Avatar do usuário
Noob4Fun
Membro
Membro
Reações: 0
Mensagens: 37

Contato:

Re: Colisão avançada

Mensagem por Noob4Fun » Seg Jun 13, 2016 9:26 pm

Não é isso que quero. Estou a fazer um jogo breakout e estou a usar o rato para mover a plataforma. Se eu mover rápido o rato para o lado e tocar na bola a bola entra dentro da plataforma ou faz bounce inexistente. Ou seja eu quero um código que ao mover rápido e tocar na bola a bola mude de direção sem colar ou fazer bounce falso

Mas agora que fiquei a pensar devo e ter de fazer movimento por fricção invés de movimento normal, se fizer por fricção não deve bugar. O problema é que se fazer por fricção a velocidade será cada vez maior e será muito complicado segurar a bola ahah. Só se impor um limite de velocidade para a bola depois de se afastar da plataforma. Se for isso como posso fazer?
Editado pela última vez por gabrielsch em Ter Jun 14, 2016 12:01 am, em um total de 1 vez.
Razão: Evite post duplo!

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

Re: Colisão avançada

Mensagem por Dust » Ter Jun 14, 2016 3:46 pm

Cara tu ta é complicando isso ae, o metodo que eu ja mencionei tbm funciona para isso, mas ja que é um breakout, remova a colisao que você está usando da bola com a plataforma/mouse, ao invés de usar uma colisao use uma variavel, por exemplo, no create coloque a variavel direcao=0; e na colisao da bola com a plataforma: direcao=1; e no step da bola voce digita isso: if direcao=0 {y-=1} else {y+=1} ; isso vai fazer com que a bola se movimente, e quando chegar na plataforma/mouse, a bola nao ira ficar presa, e sim trocar de direção. Flw!

Avatar do usuário
Noob4Fun
Membro
Membro
Reações: 0
Mensagens: 37

Contato:

Re: Colisão avançada

Mensagem por Noob4Fun » Ter Jun 14, 2016 5:03 pm

Ah já entendi o teu código obrigado

Trancado

Quem está online

Usuários navegando neste fórum: Semrush [Bot] e 1 visitante