Guten Tag, lieber Leser! Dies ist der vierte Artikel über Box2D. Und hier werde ich eine schlüsselfertige Lösung für Programmierer anbieten. Ich selbst brauchte Zahnräder für mein Projekt und habe 4, 6, 12 und 24 Zahnräder hergestellt. Der Code dauerte 2115 Zeilen, 4 Arbeitstage. Und ich möchte es mit Ihnen teilen, damit Sie Ihre Zeit für wirklich beeindruckende Box2D-Projekte sparen können. Alle Gänge sind skaliert, Sie können den Drehwinkel, die Koordinaten, die Verfügbarkeit, die Geschwindigkeit und die Motorleistung einstellen. Im Code wird alles ausführlich kommentiert.
Wenn Sie so etwas brauchen (GIF-Animation wird nach dem Kat sein):
Abbildung 1. Das Getriebe.
Dieser Artikel ist definitiv für Sie!
Abbildung 1. Animiertes Zahnradsystem
Die Zusammensetzung des Projekts ist dieselbe. Lesen Sie den
ersten Artikel über das Verbinden von
libGDX und erstellen Sie dasselbe Projekt.
Der Code enthält eine Beschreibung für alle Arten von Zahnrädernpackage 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;

Abbildung 3. Zahnrad mit 4 Zähnen.
Abbildung 4. Zahnrad mit 6 Zähnen.
Abbildung 5. Zahnrad mit 12 Zähnen.
Abbildung 6. Zahnrad mit 24 Zähnen.
Vielen Dank für das Lesen bis zum Ende! Ich hoffe, dass der Code aus diesem Artikel Ihnen in Ihrem Projekt sehr geholfen hat!
PS Ich werde alle Fragen in den Kommentaren beantworten.