Buenas tardes, querido lector! Este es el cuarto artículo sobre Box2D. Y aquí ofreceré una solución llave en mano para programadores. Yo mismo necesitaba engranajes para mi proyecto, e hice 4, 6, 12 y 24 engranajes. El código tomó 2115 líneas, 4 días de trabajo. Y quiero compartirlo con usted para que pueda ahorrar tiempo para proyectos Box2D realmente impresionantes. Todos los engranajes están escalados, puede establecer el ángulo de rotación, las coordenadas, la disponibilidad, la velocidad y la potencia del motor. En el código, todo se comenta en detalle.
Si necesita algo como esto (la animación gif estará después del kat):
Figura 1. El sistema de engranajes.
¡Ese artículo es definitivamente para ti!
Figura 1. Sistema de engranaje animado
La composición del proyecto es la misma, lea el
primer artículo sobre la conexión de
libGDX y cree el mismo proyecto.
El código contiene una descripción para todos los tipos de engranajes.package 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. Engranaje con 4 dientes.
Figura 4. Engranaje con 6 dientes.
Figura 5. Engranaje con 12 dientes.
Figura 6. Engranaje con 24 dientes.
¡Gracias por leer hasta el final! ¡Espero que el código de este artículo te haya ayudado mucho en tu proyecto!
PD : responderé todas las preguntas en los comentarios.