Conectar-se
Quem está conectado
21 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 21 Visitantes

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
Data de inscrição : 29/01/2011
Número de Mensagens : 800
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Erro estranho com "collision_line".

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!
avatar
Ranking : Sem avaliações
Data de inscrição : 08/06/2008
Número de Mensagens : 2314
Insígnias de JAM :

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

Prêmios
   : 3
   : 0
   : 1
Ver perfil do usuáriohttp://blackcapapps.blogspot.com.br/

Re: Erro estranho com "collision_line".

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.
avatar
Ranking : Nota A
Notas recebidas : A+A
Data de inscrição : 20/03/2010
Número de Mensagens : 1134
Insígnias de JAM :

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

Prêmios
   : 1
   : 0
   : 1
Ver perfil do usuáriohttps://www.facebook.com/seito.washiro.7

Re: Erro estranho com "collision_line".

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
Data de inscrição : 29/01/2011
Número de Mensagens : 800
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Erro estranho com "collision_line".

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!
Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum