Daftar Isi:
Video: LIBGDX para Android - Tutorial 33 - Box2D y Scene2D [Parte 3] - How to make games Android 2024
Perhitungan gravitasi telah menjadi bagian dari permainan video HTML5 sejak awal. Sebenarnya ada dua jenis gravitasi yang perlu dipertimbangkan. Dalam permainan bergaya platform, pemainnya dekat dengan planet, dan semua gravitasi tampaknya menarik semuanya lurus ke bawah.
Bila Anda tahu bagaimana menambahkan vektor akselerasi, gaya gravitasi platform sebenarnya mudah untuk dikerjakan. Pikirkan gravitasi sebagai kekuatan konstan selalu menarik ke bawah sejumlah kecil setiap frame.
Cara menambahkan roket ke permainan Anda
Contoh ini memiliki satu fitur menarik lainnya. Saat Anda menekan panah ke atas, gambar mobil diubah menjadi gambar lain dengan api.
Kode untuk contoh hoverCar ditunjukkan di sini secara keseluruhan:
hoverCar. mobil var html; kota var; permainan var; fungsi Car () {tCar = new Sprite (permainan, "hoverCar. png", 70, 50); tCar. setSpeed (0); tCar hSpeed = 0 tCar. checkKeys = function () {tCar. changeImage ("hoverCar. png"); jika (keysDown [K_LEFT]) { ini. hSpeed - = 1 } jika (keysDown [K_RIGHT]) { ini. hSpeed + = 1 } jika (keysDown [K_UP]) { ini. addVector (0, 5); ini changeImage ("hoverCarThrust. png") ;} ini. changeXby (ini. hSpeed); } // akhiri checkKeys tCar. checkGravity = function () { if (this 'y> 580) { ini. setPosition (ini x, 580); } lagi { ini. addVector (180, 1); } // akhiri jika } // akhiri cekGravity kembalilah tCar;} // akhiri fungsi def mobil init () {game = new Scene (); mobil = mobil baru (); city = new Sprite (permainan, "kota png", 800, 600); kota. setSpeed (0); kota. setPosition (400, 300); permainan. start ();} // akhirin fungsi init update () {game. bersih(); kota. memperbarui(); mobil. checkKeys (); mobil. checkGravity (); mobil. update ();} // end update
Cara menggunakan vektor kekuatan dalam permainan Anda
Gravitasi sebenarnya cukup mudah. Ini hanyalah sebuah vektor gaya. Bagian menarik lainnya dari contoh ini melibatkan perubahan gerak horisontal tanpa mengubah sudut gambar mobil dan menyesuaikan gambar untuk menunjukkan pendorongnya. Inilah langkah-langkahnya:
-
Bangun dua gambar yang berbeda.
Gunakan editor gambar Anda untuk membangun dua versi gambar yang berbeda.
-
Bangun sprite biasa.
Seperti kebanyakan sprite kendaraan, Anda memerlukan metode checkKeys (). Yang ini sudah diatur dengan cara biasa, tapi tingkah lakunya sedikit berbeda.
-
Atur gambar ke default
Gambar default tidak memiliki pendorong. Gunakan metode changeImage () untuk menjadikannya sebagai gambar default. Saat pendorong dinyalakan, gambar akan berubah.
-
Gunakan variabel untuk mengendalikan kecepatan horizontal.
Anda dapat membuat variabel hSpeed untuk mengatur kecepatan horisontal mobil.
-
Tetapkan panah kiri dan kanan untuk memodifikasi hSpeed.
Tombol panah kiri dan kanan mengubah variabel hSpeed.
-
Gunakan changeXby untuk mengatur kecepatan horisontal.
Setelah memeriksa semua tombol, ganti nilai x mobil ke nilai hSpeed saat ini.
-
Panah atas menambah vektor ke atas.
Gunakan fungsi addVector yang sekarang terkenal () untuk menambahkan vektor kekuatan kecil ke atas saat pengguna menekan panah ke atas. Ingat bahwa 0 derajat sudah habis. Bermain-main dengan nilai ini untuk mendapatkan jumlah dorong yang Anda inginkan untuk permainan Anda.
-
Tunjukkan pendorong saat panah atas ditekan.
Jika pengguna menekan panah ke atas, Anda perlu menunjukkan pendorongnya. Gunakan metode changeImage () untuk mengatur gambar sprite ke satu dengan pendorong roket.
-
Buat metode cekGravity ().
Metode ini akan disebut setiap frame untuk mengimbangi gravitasi.
-
Periksa untuk melihat apakah Anda berada di tanah.
Dalam contoh ini, tanah didefinisikan sebagai nilai y yang lebih besar dari 580.
-
Jika Anda tidak berada di tanah, tambahkan vektor gaya gravitasi.
Karena akan terakumulasi, vektor gaya gravitasi harus cukup kecil. Anda harus menyeimbangkan gaya gravitasi dan dorongan untuk mendapatkan perilaku yang Anda inginkan. Jika gravitasi terlalu kuat, pendorong tidak akan bekerja. Jika pendorong terlalu kuat, mobil hanya terbang ke luar angkasa.