Esforçando-se para tomar uma decisão sobre a implementação de uma mecânica de subida de borda para um jogo de plataformas 2D impulsionado pela física. Qual é a melhor maneira de fazer isso sem ficar muito complexo?
Até agora eu entendo (hobby aqui não é um profissional), existem algumas opções, incluindo:
Aplique força controlada ao corpo rígido no eixo y até que a posição da raiz esteja logo acima da posição da mão e aplique força suficiente no eixo x, de modo que o personagem esteja na plataforma. Ao mesmo tempo, sincronize isso com as animações de escalada.
Observações : o movimento é fácil aqui e pode até ser controlado por uma junta deslizante prismática, mas não tenho certeza de como manteria as animações (coluna) sincronizadas com o movimento.
Animação de movimento raiz que direciona a posição raiz do personagem. Teleporte o corpo rígido quando completo e espere que o box2d ainda possa responder adequadamente a tempo de qualquer colisão, se algum objeto cair do céu.
Observações : parece mais fácil animar, mas não tenho certeza se vou ter algum problema com o tempo de execução da coluna, box2d ou mais tarde na linha de plataformas móveis e plataformas de altura variadas.
Aplique a restrição IK programaticamente nas mãos para travá-las no lugar e continue girando os ossos manualmente ou aplique pequenas animações predefinidas (poucas teclas / quadros) enquanto aplica a força necessária ao corpo rígido ao mesmo tempo.
Observações : parece que isso daria o máximo controle ao jogador, mas parece muito complicado para mim implementar no meu nível, não exatamente certo por onde começar.
Agradecemos antecipadamente por qualquer entrada!
FYI: Este é um mecanismo baseado em ECS (libgdx + ashley) com box2d. A captura de borda já está implementada como um sistema separado, para que possamos assumir aqui que o personagem já é capaz de pendurar em uma borda de qualquer altura.