Selamat siang, pengguna habr.com sayang! Ini adalah artikel ketiga tentang topik ini. Saya bekerja sepanjang hari, saya tidak bisa melepaskan diri dari perpustakaan Box2D yang menakjubkan.
Jika Anda belum membaca artikel
pertama dan
kedua , pastikan untuk melihatnya, itu akan menyenangkan! Saya bekerja di
Eclipse , saya menulis di Jawa. Mengapa saya menyebut artikel saya demikian? Baca terus - dan segera semuanya akan menjadi jelas! Spoiler: kita akan membuat mesin gerak abadi kita sendiri (termasuk untuk mobil), dan, mungkin, kita akan membuat mesin itu sendiri!
Gambar 1. Mesin gerak abadi.
Jadi, hari ini kita akan mencoba untuk mendapatkan sesuatu seperti ini:
Gambar 2. Mesin dengan mesin.
Ya, ini bukan salah ketik! Hari ini kita akan membuat mesin dengan mesin nyata, itu tidak bisa dibedakan dari yang asli! Ini bukan "kereta" untuk Anda dari artikel
pertama .
Untuk menghubungkan
libGDX, lihat artikel
pertama .
Ini adalah gambar yang menunjukkan bagaimana tampilan perangkat saya. Saya menambahkan paket Utils dengan kelas Constants ke folder Core, yang hanya berisi satu konstanta - jumlah piksel per meter. Ini agar dunia tidak raksasa.
Gambar 3. Bangunan saya.
Berikut adalah kode untuk kelas DesktopLauncher dari com.mygdx.game.desktop:
Tempel kode ini ke dalam kelas dan lupakan.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();
Kode berikut untuk kelas MyGdxGame adalah dari paket com.mygdx.game. Semuanya ada dalam kode komentar.
Kami menciptakan dunia dan mesin. 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;
Gambar 4. Apa yang kita dapatkan saat kompilasi?
Kami membuat mobil kami motor yang memutar rodanya. Tapi itu bekerja selamanya, karena tidak ada energi yang hilang. Jadi kami menciptakan mesin gerak abadi kami!
Dan Anda bertanya-tanya apa yang ada di akhir level? Kirim tangkapan layar dalam komentar saat Anda pergi. Terima kasih telah membaca artikel sampai akhir! Saya harap Anda dapat membuat mobil Anda sendiri di Box2D!
PS Saya menantikan pertanyaan Anda di komentar! Hidupkan fisika game!