Luttant pour prendre une décision sur la mise en œuvre d'un mécanicien de montée de rebord pour un jeu de plateforme 2D piloté par la physique. Quelle est la meilleure façon de procéder sans que cela ne devienne trop complexe?
Jusqu'à présent, je comprends (amateur ici pas un pro) il y a quelques options, y compris:
Appliquez une force contrôlée au corps rigide sur l'axe y jusqu'à ce que la position de la racine soit juste au-dessus de la position de la main, puis appliquez suffisamment de force sur l'axe x pour que le personnage se tienne sur la plate-forme. En même temps, synchronisez cela avec les animations de montée.
Remarques : le mouvement est facile ici et peut même être contrôlé par une articulation coulissante prismatique mais je ne sais pas comment je garderais les animations (colonne vertébrale) synchronisées avec le mouvement.
Animation de mouvement racine qui détermine la position racine du personnage. Téléportez le corps rigide une fois terminé et espérez que box2d pourra toujours répondre correctement à temps à toute collision si des objets tombaient du ciel.
Remarques : semble plus facile à animer, mais je ne sais pas si je rencontrerai des problèmes avec la colonne vertébrale d'exécution, box2d ou plus tard sur les plates-formes mobiles et les plates-formes de hauteur variable.
Appliquez la contrainte CI par programmation sur les mains pour les verrouiller en place et procédez à la rotation manuelle des os ou appliquez de petites animations prédéfinies (quelques clés / images) tout en appliquant la force nécessaire au corps rigide en même temps.
Remarques : semble que cela donnerait un contrôle maximum au joueur mais cela semble trop compliqué pour moi de l'implémenter à mon niveau, je ne sais pas exactement par où commencer.
Merci d'avance pour toute contribution!
FYI: Ceci est un moteur basé sur ECS (libgdx + ashley) avec box2d. Le grab de rebord est déjà implémenté comme un système séparé, nous pouvons donc supposer ici que le personnage est déjà capable de se suspendre à un rebord de n'importe quelle hauteur.