Guten Tag, lieber Benutzer habr.com! Dies ist der dritte Artikel zum Thema. Ich arbeite den ganzen Tag, ich kann mich nicht von der erstaunlichen Box2D-Bibliothek losreißen.
Wenn Sie den
ersten und
zweiten Artikel nicht gelesen haben, schauen Sie unbedingt nach, es wird Spaß machen! Ich arbeite in
Eclipse , ich schreibe in Java. Warum habe ich meinen Artikel so genannt? Lesen Sie weiter - und schon bald wird alles klar! Spoiler: Wir werden unsere eigene Perpetual-Motion-Maschine (auch für Autos) herstellen und vielleicht die Maschine selbst herstellen!
Abbildung 1. Perpetual Motion Machine.
Also werden wir heute versuchen, so etwas zu bekommen:
Abbildung 2. Maschine mit Motor.
Ja, das ist kein Tippfehler! Heute werden wir eine Maschine mit einem echten Motor bauen, der von dem echten nicht zu unterscheiden ist! Dies ist nicht der "Einkaufswagen" für Sie aus dem
ersten Artikel.
Informationen zum Verbinden von
libGDX finden Sie im
ersten Artikel.
Hier ist ein Bild, das zeigt, wie meine Baugruppe aussieht. Ich habe das Utils-Paket mit der Constants-Klasse zum Core-Ordner hinzugefügt, der nur eine Konstante enthält - die Anzahl der Pixel pro Meter. Dies ist so, dass die Welt nicht gigantisch ist.
Abbildung 3. Mein Build.
Hier ist der Code für die DesktopLauncher-Klasse von com.mygdx.game.desktop:
Fügen Sie diesen Code in die Klasse ein und vergessen Sie ihn.package com.mygdx.game.desktop; import com.badlogic.gdx.backends.lwjgl.LwjglApplication; import com.badlogic.gdx.backends.lwjgl.LwjglApplicationConfiguration; import com.mygdx.game.MyGdxGame; public class DesktopLauncher { public static void main(String[] arg) { LwjglApplicationConfiguration config = new LwjglApplicationConfiguration();
Der folgende Code für die MyGdxGame-Klasse stammt aus dem Paket com.mygdx.game. Alles ist in den Codekommentaren.
Wir erschaffen die Welt und die Maschine. 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.CircleShape; 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 utils.Constants; public class MyGdxGame extends ApplicationAdapter { private OrthographicCamera camera; private boolean DEBUG = false; private World world; private Box2DDebugRenderer b2dr;
Abbildung 4. Was bekommen wir beim Kompilieren?
Wir schaffen aus unserem Auto einen Motor, der seine Räder dreht. Aber es funktioniert für immer, weil es keine Energieverluste gibt. So schaffen wir unsere Perpetual Motion Maschine!
Und du fragst dich, was am Ende des Levels ist? Senden Sie Screenshots in den Kommentaren, während Sie gehen. Vielen Dank, dass Sie den Artikel bis zum Ende gelesen haben! Ich hoffe, Sie können Ihr eigenes Auto in Box2D erstellen!
PS Ich freue mich auf Ihre Fragen in den Kommentaren! Es lebe die Spielphysik!