leo150250 / fez_fangame

A little fan game of Fez!
9 stars 2 forks source link

Corrigir cálculo de profundidade #6

Closed leo150250 closed 8 years ago

leo150250 commented 8 years ago

Na última atualização, o cálculo de profundidade foi corrigido quando o Gomez está atrás de uma parede, não permitindo "pular para frente" enquanto isso. No entanto, isso gerou um bug: Caso seja alcançada uma plataforma de baixo pra cima que possui uma parede, o Gomez não atualiza a profundidade.

Uma solução seria efetuar um cálculo de profundidade baseado na previsão de lugar, de acordo com a movimentação do Gomez, e atualizar a profundidade de acordo. Outra solução seria alterar a profundidade para o mais próximo da câmera sempre que possível, mas acontece um glitch caso tente girar a câmera durante o pulo. Isso pode ser contornado salvando em variável a profundidade antiga, e alterar para ela no momento que tentar girar a câmera.

leo150250 commented 8 years ago

O cálculo foi corrigido, basta apenas agora corrigir o glitch que ocorre quando se gira a câmera durante o pulo. Além disso, acontece também um outro glitch onde, caso ele esteja no ar, com um paredão atrás dele, o personagem fica "piscando", como se em determinadas posições ele fosse para a maior profundidade da câmera, mas corrigisse no próximo frame. Isso só acontece quando atualiza a posição y.

leo150250 commented 8 years ago

O bug principal foi corrigido, agora é apenas melhorá-lo!

Isto é, agora ele detecta de maneira bem suave boa parte das profundidades. Foi necessário acrescentar mais duas variáveis: refazer_profundidade, girox e giroy, além de refazer quase todo o código referente ao scr_updatez(). No entanto, parece que algumas situações ainda estão bugadas, que é possível de se ver de uma maneira mais "focal" no teste_profundidade.f4e onde uma das plataformas está "passando direto" pelo código, sem ser detectada.

No geral, o bug principal foi corrigido!