Lottando per prendere una decisione sull'implementazione di un meccanico di scalata del bordo per un platform 2D guidato dalla fisica. Qual è il modo migliore per farlo senza che diventi eccessivamente complesso?
Finora ho capito (hobbista qui non un professionista) ci sono alcune opzioni tra cui:
Applica una forza controllata al corpo rigido sull'asse y fino a quando la posizione della radice è appena sopra la posizione della mano, quindi applica una forza sufficiente sull'asse x in modo che il personaggio si trovi sulla piattaforma. Allo stesso tempo, in qualche modo sincronizzalo con l'animazione della salita.
Osservazioni : qui il movimento è facile e può anche essere controllato da un'articolazione scorrevole prismatica, ma non sono sicuro di come mantenere le animazioni (colonna vertebrale) in sincronia con il movimento.
Animazione di movimenti di root che guida la posizione principale del personaggio. Teletrasporta il corpo rigido una volta completato e spera che box2d possa ancora rispondere correttamente in tempo a qualsiasi collisione se qualche oggetto dovesse cadere dal cielo.
Osservazioni : sembra più facile da animare in realtà, ma non sono sicuro se incontrerò problemi con il runtime della colonna vertebrale, box2d o versioni successive lungo la piattaforma mobile e piattaforme di varia altezza.
Applicare il vincolo IK a livello di codice sulle mani per bloccarle in posizione e procedere alla rotazione manuale delle ossa o applicare piccole animazioni predefinite (pochi tasti / fotogrammi) applicando contemporaneamente la forza necessaria al corpo rigido.
Osservazioni : sembra che questo darebbe il massimo controllo al giocatore ma mi sembra molto complicato implementarlo al mio livello, non proprio sicuro da dove iniziare.
Grazie in anticipo per qualsiasi input!
Cordiali saluti: Questo è un motore basato su ECS (libgdx + ashley) con box2d. L'afferrare sporgenza è già implementato come un sistema separato, quindi possiamo supporre che il personaggio sia già in grado di pendere da una sporgenza di qualsiasi altezza.