Página 1 de 1

Colisão avançada

Enviado: Seg Jun 13, 2016 5:12 pm
por Noob4Fun
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á

Re: Colisão avançada

Enviado: Seg Jun 13, 2016 6:33 pm
por Dust
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!

Re: Colisão avançada

Enviado: Seg Jun 13, 2016 9:26 pm
por Noob4Fun
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?

Re: Colisão avançada

Enviado: Ter Jun 14, 2016 3:46 pm
por Dust
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!

Re: Colisão avançada

Enviado: Ter Jun 14, 2016 5:03 pm
por Noob4Fun
Ah já entendi o teu código obrigado