Boa tarde, querido leitor! Este é o quarto artigo no Box2D. E aqui vou oferecer uma solução chave na mão para programadores. Eu próprio precisava de marchas para o meu projeto e fiz 4, 6, 12 e 24 marchas. O código levou 2115 linhas, 4 dias de trabalho. Quero compartilhar com você para economizar seu tempo em projetos Box2D realmente impressionantes. Todas as engrenagens são dimensionadas, você pode definir o ângulo de rotação, coordenadas, disponibilidade, velocidade e potência do motor. No código, tudo é comentado em detalhes.
Se você precisar de algo assim (a animação gif será após o kat):
Figura 1. O sistema de engrenagem.
Esse artigo é definitivamente para você!
Figura 1. Sistema de engrenagem animado
A composição do projeto é a mesma, leia o
primeiro artigo sobre a conexão do
libGDX , criando o mesmo projeto.
O código contém uma descrição para todos os tipos de engrenagenspackage com.mygdx.game; import com.badlogic.gdx.ApplicationAdapter; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Input.Keys; import com.badlogic.gdx.graphics.GL20; import com.badlogic.gdx.graphics.OrthographicCamera; import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.math.Vector3; import com.badlogic.gdx.physics.box2d.Body; import com.badlogic.gdx.physics.box2d.BodyDef; import com.badlogic.gdx.physics.box2d.Box2DDebugRenderer; import com.badlogic.gdx.physics.box2d.FixtureDef; import com.badlogic.gdx.physics.box2d.PolygonShape; import com.badlogic.gdx.physics.box2d.World; import com.badlogic.gdx.physics.box2d.joints.RevoluteJointDef; import com.badlogic.gdx.physics.box2d.joints.WeldJointDef; import utils.Constants; public class MyGdxGame extends ApplicationAdapter { private OrthographicCamera camera; private boolean DEBUG = false; private World world; private Box2DDebugRenderer b2dr; private Body basis;

Figura 3. Engrenagem com 4 dentes.
Figura 4. Engrenagem com 6 dentes.
Figura 5. Engrenagem com 12 dentes.
Figura 6. Engrenagem com 24 dentes.
Obrigado por ler até o fim! Espero que o código deste artigo tenha ajudado muito em seu projeto!
PS Vou responder a todas as perguntas nos comentários.