Unlimited WordPress themes, graphics, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Corona SDK
Code

Corona SDK: Membuat Permainan Word Drop

by
Difficulty:IntermediateLength:LongLanguages:

Indonesian (Bahasa Indonesia) translation by Ari Ana (you can also view the original English article)

Dalam tutorial ini, saya akan mengajarkan Anda cara membuat permainan Word Drop menggunakan Corona SDK. Kita akan membangun permainan dari awal hingga akhir jadi saya mendorong Anda untuk mengikuti. Dalam tutorial ini, kita akan bekerja dengan pengatur waktu, fisika, dan menerapkan kontrol sentuh kita sendiri. Mari kita mulai.


Perkenalan

Tujuan dari permainan ini adalah untuk menciptakan kata-kata dari bola-bola berhuruf. Jika bola melewati bilah di bagian atas, permainan berakhir. Anda memiliki tiga bom, yang dapat Anda gunakan untuk menghapus lima bola sehingga itu adalah kunci untuk menggunakannya dengan hemat. Setiap sepuluh detik, lebih banyak bola jatuh dari atas layar. Lihatlah tangkapan layar untuk mendapatkan gagasan tentang permainannya.

gamescreen

1. New Project

Buka Simulator Corona dan pilih New Project.

CoronaSDK_BlackBox_15

Di layar berikutnya, terapkan pengaturan berikut.

settings

Klik Next dan pilih Open in Editor. Ini akan membuka Main.lua di editor teks pilihan Anda.


2. Konfigurasi Proyek

Buka Config.lua dan ganti konten file dengan konfigurasi yang ditunjukkan di bawah ini. Ini akan mengatur lebar, tinggi, skala, dan FPS (frames per second) default dari proyek. Pengaturan skala letterBox berarti aplikasi akan diskala naik ke kedua arah seseuai mungkin. Namun, jika perlu, permainan akan menjadi letterbox.


3. Menyembunyikan Bilah Status

Untuk mencegah bilah status ditampilkan di bagian atas layar, tambahkan potongan berikut ke Main.lua.


4. Variabel Lokal

Dalam cuplikan kode berikut, Anda dapat melihat daftar variabel yang akan kita gunakan dalam permainan ini. Baca komentar mendapatkan ide tanggung jawab masing-masing variabel.


5. Menyiapkan Fisika

Dengan cuplikan berikut, kita membutuhkan dan memulai mesin fisika. Kita mengatur tinggi gravitasi untuk memastikan bola jatuh dengan cepat.


6. setup

Dalam setup, kita membuat generator acak untuk memastikan math.random menghasilkan nomor acak ketika kita membutuhkannya.

Panggil setup segera setelah deklarasinya.


7. setupGameAssets

Dalam beberapa langkah berikutnya, kita akan mematikan beberapa fungsi, yang akan kita terapkan nanti di tutorial ini.

Di setupGameAssets, aset permainan sudah diatur.


8. newGame

Fungsi newGame bertanggung jawab untuk memulai permainan baru.


9. setupGameBoundaries

Di setupGameBoundaries, batas-batas untuk bola di sebelah kiri, kanan, dan bawah layar ditetapkan.


10. setupButtons

Fungsi setupButtons mengatur tombol-tombol.


11. setupTextFields

Di setupTextFields, bidang teks sudah diatur.


12. setupBombs

Fungsi ini menyiapkan gambar untuk bom.


13. setBombsVisible

Dengan menerapkan setBombsVisible, bom akan terlihat.


14. setBombsInvisible

Fungsi ini tidak perlu dijelaskan. Benar?


15. generateBalls

Fungsi generateBalls bertanggung jawab untuk menghasilkan bola baru pada interval waktu yang teratur.


16. startTimer

startTimer memulai penghitung waktu.


17. doCountDown

Di doCountDown, waktu permainan dikurangi.


18. createBall

Fungsi createBall bertanggung jawab untuk membuat satu bola. Dibutuhkan satu argumen, huruf yang berada di dalam bola.


19. checkGameOver

Di checkGameOver, kita memverifikasi apakah permainan selesai, yaitu, jika dinding bola telah melewati bilah di bagian atas layar.


20. checkWord

Di checkWord, kita memverifikasi apakah kata yang dieja pengguna adalah valid.


21. resetWord

Fungsi resetWord dipanggil ketika pemain membatalkan pengiriman.


22. createVowelBalls

Fungsi createVowelBalls memastikan bahwa beberapa bola mengandung vokal. Dibutuhkan satu parameter, jumlah bola yang seharusnya mengandung vokal.


23. formString

Fungsi ini menciptakan string dari huruf-huruf pada bola yang telah dipilih pengguna.


24. explode

Fungsi explode dipanggil ketika pemain menggunakan bom. Ini menghilangkan lima bola dari permainan.


25. removeBall

Fungsi removeBall memilih bola acak untuk dihapus dari permainan.


26. readTextFile

Fungsi readTextFile digunakan untuk membaca file teks dan menyimpan kata-kata yang ada di dalam tabel untuk digunakan dalam permainan.


27. Pemeriksaan Kemajuan

Periksa kembali apakah Anda telah membuat implementasi rintisan untuk fungsi-fungsi di atas sebelum melanjutkan. Dalam beberapa langkah selanjutnya, kita akan menerapkan setiap fungsi.


28. Menerapkan readTextFile

Di readTextFile, kita membaca file teks dari direktori sumber daya dan menyimpan setiap kata di wordTable. Kita menggunakan string.sub untuk memangkas spasi dari akhir setiap kata.

readTextFile dipanggil di setupGameAssets seperti yang ditunjukkan di bawah ini. Kita akan memperbarui setupGameAssets beberapa waktu kemudian dalam tutorial ini.


29. Menerapkan setupGameBoundaries

Di setupGameBoundaries, batasan untuk permainan ditentukan. lineLeft dan lineRight adalah batas kanan dan kiri, sedangkan groundLine adalah bagian bawah layar, bisa dikatakan sebagai lantai dasar. Ini digunakan oleh mesin fisika dan akan mencegah bola bergerak keluar dari area permainan. Kita mengaturnya agar tidak terlihat karena kita tidak perlu melihatnya. Alasan kita menggunakan -29, adalah karena, jari-jari bola adalah 29 dan sistem fisika menggunakan pusat objek saat menguji tabrakan.

Sama seperti readTextFile, setupGameBoundaries dipanggil di setupGameAssets.


30. Menerapkan setupButtons

Menerapkan setupButtons seperti yang ditunjukkan di bawah ini dan menjalankan fungsi di setupGameAssets.


31. Menerapkan setupTextFields

Terapkan setupTextFields seperti yang ditunjukkan di bawah ini dan jalankan fungsi di setupGameAssets.


32. Menerapkan setupBombs

Menerapkan setupBombs seperti yang ditunjukkan di bawah ini dan menjalankan fungsi di setupGameAssets. Di setupBombs, kita menghasilkan tiga gambar bom. Dengan menyimpan gambar dalam tabel, kita dapat mereferensikannya tanpa harus menyatakan tiga variabel gambar terpisah.


33. Menyelesaikan setupGameAssets

Finalisasi implementasi setupGameAssets dengan menambahkan potongan yang ditunjukkan di bawah ini. Ini menginisialisasi grup untuk bola.


34. Penyelesaian setup

Dengan fungsi setupGameAssets yang siap digunakan, kita dapat menjalankannya dalam fungsi setup seperti yang ditunjukkan di bawah ini.


35. Menerapkan createBall

Kita memiliki dua tabel, satu untuk alfabet dan satu hanya untuk vokal karena kita ingin memastikan bahwa beberapa bola mengandung vokal. Kita kemudian menghasilkan nilai acak untuk variabel ballType dan ballSize. Nilai ballType berkisar dari 1 hingga 4, sedangkan nilai ballSize berkisar dari 1 hingga 2. Dengan menggunakan variabel-variabel ini, kita mendapatkan warna bola dan mengatur jari-jarinya. letterText menggunakan huruf acak yang kita buat dan menetapkan x dan y untuk menjadi sama dengan bola. Kita kemudian memasukkan kedua huruf dan bola dalam kelompok sehingga mereka muncul sebagai salah satu elemen dalam permainan. Selanjutnya, kita menghasilkan posisi x acak untuk bola dan menempatkannya pada -40 untuk posisi y. Kita menambahkan fisika pada bola untuk memastikan bola jatuh dari bagian atas layar ke bawah. Beri kunci name dan letter, tambahkan event ketuk, dan masukkan ke dalam tabel allBalls serta tabel allBallsGroup. Yang terakhir memungkinkan kita untuk bekerja dengan semua bola saat ini dalam permainan.

Jika Anda menjalankan fungsi ini dalam setup, Anda akan melihat satu bola sedang dibuat dan jatuh dari atas layar ke bawah. Jangan lupa untuk menghapus panggilannya dari metode setup ketika Anda selesai menguji.


36. Menerapkan generateBalls

Di generateBalls, kita memanggil checkGameOver setelah 1500 milidetik, yang memberi cukup waktu bagi bola untuk melewati bilah. Jika itu adalah permainan baru, kita perlu menghasilkan sepuluh bola, jika tidak kita menghasilkan empat bola yang setidaknya satu mengandung vokal. Kita akan segera menjelajahi implementasi dari createVowelBalls. Jika Anda mengaktifkan generateBalls di setup, Anda akan melihat sepuluh bola yang dihasilkan.


37. Menerapkan createVowelBalls

Semua fungsi ini memang memanggil createBall sebanyak nilai dari number yang dilewatkan ke fungsi. Kita menyampaikan true sebagai parameter, yang berarti createBall akan menghasilkan bola yang berisi vokal.


38. Menerapkan removeBall

Fungsi ini memilih bola acak dari tabel allBalls dan menghapusnya. Fungsi ini dipanggil oleh fungsi explode, yang akan kita terapkan dalam beberapa saat.


39. Menerapkan setBombsVisible

Di setBombsVisible, kita melakukan perulangan melalui bom dan mengaturnya agar terlihat.


40. Menerapkan setBombsInvisible

Dalam fungsi ini, kita melakukan sebaliknya seperti yang kita lakukan di setBombsVisible.


41. Menerapkan explode

Saat explode, kita memeriksa apakah allBalls berisi kurang dari lima bola. Jika kurang dari lima bola yang ada, kita menghapus semua bola, jika tidak kita hanya menghapus lima bola.


42. Menerapkan formString

Dalam formString, kita membentuk sebuah kata setiap kali pengguna mengklik sebuah bola. Ingat bahwa setiap bola memiliki kunci letter yang ditambahkan padanya. Kita memeriksa apakah tabel chosenBalls tidak berisi bola yang mereka ketuk. Jika tidak, kita memasukkan bola ke dalam tabel chosenBalls, menyisipkan hurufnya ke akhir variabel theWord, dan menampilkannya di field teks. Jika bola sudah dipilih dan ditambahkan ke chosenBalls, kita tidak menambahkannya ke chosenBalls dan mencetak pesan ke konsol sebagai gantinya. Anda sudah bisa menguji permainan kita dengan mengetuk beberapa bola dan melihat kata itu muncul di field teks.


43. Menerapkan resetWord

Fungsi ini menyetel ulang kata saat ini dan membersihkan tabel chosenBalls. Jika Anda menguji permainan, Anda dapat mengklik tombol cancel untuk menghapus field teks.


44. Menerapkan checkWord

Di checkWord, kita memeriksa apakah panjang theWord kurang dari atau sama dengan satu. Jika ya, kita kembali dari fungsi. Kita harus memastikan pemain telah memilih kata dengan minimal dua huruf. Kita kemudian perlu memeriksa apakah theWord itu cocok dengan kata dari wordTable. Jika tidak, kita mengatur instructionsText ke NOT A WORD dan menunjukkan kepada pemain. Jika ya, kita melakukan perulangan melalui tabel chosenBalls dan menghapus setiap bola dari permainan.


45. Menerapkan doCountDown

Di doCountDown, kita mengambil nomor dari field teks, menguranginya, dan memeriksa apakah itu sama dengan nol. Jika ya, kita memanggil generateBalls, meresetnya, dan memanggil startTimer, yang kemudian memanggil doCountDown.


46. Menerapkan startTimer

Implementasi startTimer sederhana. Kita memanggil doCountdown setiap detik dan mengulangi ini sebanyak nilai gameTime.


47. Menerapkan newGame

Untuk memulai permainan baru, variabel yang kita nyatakan sebelumnya diatur ulang dan startTimer dipanggil untuk memulai permainan.


48. Menerapkan checkGameOver

Dalam fungsi ini, kita melakukan perulangan melalui tabel allBalls dan memeriksa apakah nilai y dari salah satu bola adalah lebih besar dari 100. Jika ya, satu atau lebih bola melintasi bilah di bagian atas dan permainan berakhir. Jika permainan berakhir, bola akan dihapus dari tabel ballGroup. Pengatur waktu dibatalkan untuk membuat bom tidak terlihat dan newGame dipanggil setelah tiga detik.


49. Menyelesaikan Permainan

Semua yang tersisa untuk kita lakukan adalah memanggil newGame dalam fungsi setup.


Kesimpulan

Dalam tutorial ini, kita membuat permainan kata yang kreatif. Jangan ragu untuk bereksperimen dengan kode yang telah kita tulis untuk melihat pengaruhnya terhadap permainan. Saya harap Anda menemukan tutorial ini bermanfaat.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.