Erro estranho com "collision_line".

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Erro estranho com "collision_line".

Mensagem por GameMakerTutoriais em Qua 16 Maio 2012, 02:30

Pessoal, preciso de ajuda num problema muito estranho. A função "collision_line" não acusa a existência de colisão, mas há. Se vocês baixarem o exemplo ficará mais fácil de explicar, mas vou tentar assim mesmo.

http://dl.dropbox.com/u/77818756/bug_colisionline.gmk

Suponhamos que você alinhe lado a lado vários quadrados exatos com dimensões pares. Não importa o tamanho, contanto que seja par. Faça uma parede entrepondo um ponto "A" e "B", de modo que a espessura seja de dois quadrados.

Agora, se você testar a collision_line entre A e B, em alguns momentos ela simplesmente falhará. Isso não deveria acontecer, pois os quadrados estão ocupando completamente a área de teste, ou seja, não há "frestas" entre eles.

Fiquei olhando o meu código e procurando qual seria o erro até fazer o teste do upload que coloquei pra vocês. O mais estranho é que, apesar de ser um quadrado exato, se desmarcarmos a opção "precise collision checking" do sprite, ela simplesmente funciona.

Através do exemplo fica mais fácil de entender. A primeira sala é onde mostra o erro acontecendo. Percebam que a linha vermelha em alguns momentos "desaparece" justamente por causa disso. Já na segunda sala, eu fiz uma gambiarra que eu certo, mas não quero isso. =/

Alguma solução, ideia, dica?

Abraços!

GameMakerTutoriais

Número de Mensagens : 800
Data de inscrição : 29/01/2011
Reputação : 26
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Erro estranho com "collision_line".

Mensagem por Kabeção em Qua 16 Maio 2012, 11:54

Muito estranho, isso não acontece com os primeiros e ou ultimos blocos, só com os de 2 colunas no meio.
Até no GMS que o trocarem o runner acontece a mesma coisa.

Eu já reportei alguns para o bug tracker da Yoyo Games e o bom é que eles sempre analisam e respondem, enviei seu exemplo.
Agora é esperar pela resposta.

Kabeção

Ranking : Sem avaliações
Número de Mensagens : 2314
Data de inscrição : 08/06/2008
Reputação : 100
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 3
   : 0
   : 1

http://blackcapapps.blogspot.com.br/

Voltar ao Topo Ir em baixo

Re: Erro estranho com "collision_line".

Mensagem por Jiraya em Qua 16 Maio 2012, 15:59

descobri o erro.
vc colocou para checar se havia colisão entre ambos pontos, porem o y-1 parece que passou pelo "espaço" entre os blocos, assim ñ acusando a colisão

no draw event do objeto ponto
substitua o
Código:

xx := x + 300;
yy := y-1;

por
Código:

xx := x + 300;
yy := y;
que vai voltar a funcionar perfeito Happy

Jiraya

Ranking : Nota A
Número de Mensagens : 1134
Data de inscrição : 20/03/2010
Notas recebidas : A+A
Reputação : 108
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 1

https://www.facebook.com/seito.washiro.7

Voltar ao Topo Ir em baixo

Re: Erro estranho com "collision_line".

Mensagem por GameMakerTutoriais em Qua 16 Maio 2012, 18:05

Kabeção escreveu:Muito estranho, isso não acontece com os primeiros e ou ultimos blocos, só com os de 2 colunas no meio.
Até no GMS que o trocarem o runner acontece a mesma coisa.

Eu já reportei alguns para o bug tracker da Yoyo Games e o bom é que eles sempre analisam e respondem, enviei seu exemplo.
Agora é esperar pela resposta.

Eu não tinha reparado mas acontece só no meio mesmo. Boa observação! Realmente deve ser um bug. Isso não deveria acontecer, os blocos estão completamente juntos. Matematicamente, não há espaços. =/

Eu nunca tinha usado o bug tracker, obrigado por ter colocado lá Very Happy

Jiraya escreveu:
descobri o erro.
vc colocou para checar se havia colisão entre ambos pontos, porem o y-1 parece que passou pelo "espaço" entre os blocos, assim ñ acusando a colisão

Então, na verdade, esse "y-1" foi proposital. Sem ele não dá pra perceber a falha. Acontece que, no meu projeto, o ponto B é calculado com base na rotação em relação ao ponto A, por isso ela pode assumir esses valores. É aí que a função falha. =/

Abraços!

GameMakerTutoriais

Número de Mensagens : 800
Data de inscrição : 29/01/2011
Reputação : 26
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Erro estranho com "collision_line".

Mensagem por Conteúdo patrocinado Hoje à(s) 12:45


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum