J'ai vu ce jeu
Pantalon fantaisie 2 . Et ce que j'ai remarqué en dehors de la physique et des belles animations, c'est que le personnage se déplace le long des pentes, même des pentes courbes. J'ai peu d'expérience en Box2d, mais ce concept de pistes courbes est nouveau pour moi. Ce serait une grande aide pour moi si quelqu'un m'éclairait sur ce concept et sa mise en œuvre. Même si l'implémentation n'est pas dans box2d, elle est la bienvenue.
game-design
flash
box2d
physics-engine
Vishnu
la source
la source
Réponses:
Comment obtenez-vous des courbes dans Box2D?
Dans la version inédite de Box2D , il existe deux nouveaux types de formes, b2LoopShape et b2EdgeShape , qui vous permettent de créer des courbes à partir d'une séquence de segments de ligne.
Dans la version publiée, vous pouvez utiliser plusieurs petites boîtes placées sous des angles pour obtenir un effet similaire, mais les corps ont tendance à faire des choses instables et inattendues près des points de connexion. Je recommanderais donc d'utiliser la version non publiée.
Comment un personnage peut-il descendre la courbe?
Faites du personnage une roue! Ma question sur la physique des plateformes a une discussion à ce sujet , mais l'idée de base est de monter le corps de votre personnage sur une roue rotative et de se déplacer en appliquant une force de rotation à la roue. Même si (en fait, parce que) la roue a un frottement, la force descendante de la gravité la fera tourner sur des pentes - comme une vraie roue. En modifiant les paramètres du moteur du joint tournant , vous pouvez lui faire résister à la rotation autant que nécessaire pour éviter qu'il ne roule sur de petites pentes.
la source
Fancy Pants a été créé en Flash, et Flash a une méthode spécifique appelée `` hitTest '' qui vous permet de tester un pixel (dans ce cas, il effectue probablement des hitTests de 2-3 pixels en bas du caractère Fancy Pants) contre tout ce qui est dessiné dans un objet MovieClip désigné. Il peut être un peu difficile de se sentir bien, mais cette fonction intégrée est la raison pour laquelle tant de jeux Flash ont des collisions avec des pentes incurvées. Le processus est beaucoup plus compliqué pour la plupart des autres moteurs et doit généralement être effectué manuellement, mais il existe plusieurs méthodes différentes.
La méthode que je connais le mieux est que si votre moteur est basé sur des tuiles (pensez à Sonic the Hedgehog), les tuiles désignées comme incurvées pourraient chacune avoir une formule qui détermine la position de collision `` Y '' en fonction de la position actuelle `` X '' du personnage sur cette tuile. Vous devez déterminer la formule en fonction de la pente d'une pente et de la courbe que vous recherchez. Vous pouvez utiliser une calculatrice graphique ou un programme graphique pour expérimenter les formules. Vous pouvez avoir plusieurs tuiles avec différentes courbes et formules associées de cette façon.
la source