Como fazer um pássaro voar usando box2d


Respostas:


4

Parece que você quer essencialmente que objetos específicos ignorem a gravidade, está correto? Como a gravidade é uma propriedade do objeto mundial, parece que a maneira de fazer isso é

  1. Desative totalmente a gravidade e aplique a gravidade manualmente a todos os objetos que você deseja que ela (ignorando os objetos que você não deseja que sejam afetados pela gravidade) ou
  2. Aplique uma força que neutralize a força da gravidade de cada quadro nos objetos que você deseja que pareçam não serem afetados pela gravidade.

Você também pode usar um em b2_kinematicBodyvez de, b2_dynamicBodyse não precisar de seus objetos "voadores" para responder a quaisquer forças. Isso pode ou não ser apropriado para suas necessidades.


Eu não quero ignorar a gravidade ... Vou tentar aplicando força ...
Chandan Shetty SP

11
Se você não quer ignorar completamente a gravidade, pode ser mais específico sobre o que quer dizer com "voar"? Sofre um efeito redutor da gravidade?

Sim, funcionou (aplicando força ao pássaro) ... Como fazer o pássaro se mover aleatoriamente na tela. Preciso aplicar força aleatória e continuamente?
Chandan Shetty SP

Você provavelmente deve fazer alguns estados para padrões de voo de pássaros e alternar aleatoriamente entre diferentes modos de padrões de vôo. Não use apenas forças e direções completamente aleatórias ou isso não parecerá um pássaro.
AttackingHobo

Você pode explicar pouco ... Como fazer um pássaro para mover nos padrões de vôo descritos ...
Chandan Shetty SP

1

Em geral, a melhor maneira é tornar seu objeto dinâmico e adicionar força a ele em todos os quadros, à esquerda ou à direita. O que quero dizer é que você pode determinar seu caminho e calcular a força considerando o peso e a gravidade, e é por isso que aplica a força ao pássaro. Eu acho que é o melhor caminho, e também o mais realista.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.