Birthday Sale! Up to 40% off unlimited courses & creative assets Birthday Sale! Save up to 40%!
Advertisement
  1. Code
  2. Corona SDK
Code

Corona SDK: Membuat Defender Monyet

by
Difficulty:BeginnerLength:LongLanguages:

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

Dalam tutorial ini, kita akan membuat game yang disebut Monkey Defender menggunakan Corona SDK! Game ini akan berfungsi sebagai dasar yang bagus untuk banyak genre yang berbeda termasuk game gaya pertahanan. Jadi, mari kita mulai!


Project Overview

Dalam versi Defender Monyet ini, pemain harus mempertahankan monyet dengan menembak granat monyet di pesawat ruang angkasa yang masuk. Setiap kali pemain berhasil menghantam pesawat ruang angkasa musuh, skor mereka akan meningkat satu per satu. Jika mereka gagal menabrak pesawat ruang angkasa musuh sebelum mencapai monyet, mereka akan kehilangan satu pisang, atau satu kehidupan. Ketika pemain kehabisan pisang, permainan berakhir!

Game ini dibuat dengan Corona SDK dan berikut beberapa hal yang akan Anda pelajari:

  • Bagaimana memanfaatkan Storyboard
  • Cara menggunakan widget
  • Cara merotasi objek berdasarkan sentuhan
  • Cara menggunakan Corona's Collision
  • Cara membuat game lengkap dengan Corona SDK

Prasyarat Tutorial

Untuk menggunakan tutorial ini, Anda harus memasang SDK Corona di komputer Anda. Jika Anda tidak memiliki SDK, kunjungi http://www.coronalabs.com untuk membuat akun gratis dan unduh perangkat lunak gratis.

Untuk mengunduh grafik yang saya gunakan untuk permainan, silakan unduh file sumber yang terlampir pada posting ini. Grafik untuk game ini berasal dari www.opengameart.org dan www.vickiwenderlich.com. Grafik latar belakang berasal dari Sauer2 di Open Game Art dan sisanya dari grafik datang Vicki Wenderlich. Jika Anda memutuskan untuk mempublikasikan game ini dengan grafik ini, pastikan untuk memberi kredit kepada kedua artis.


1. Buat Konfigurasi

Langkah pertama untuk membangun game kita, Monkey Defender, adalah membuat file baru bernama build.settings dan menempatkannya di dalam folder proyek Anda. File build.settings menangani semua properti build time di dalam aplikasi kami. Untuk permainan kita, kita hanya perlu mengkhawatirkan orientasi permainan, dan kita hanya akan mengizinkan mode lanskap.


2. Konfigurasi Runtime

Selanjutnya, kita akan membuat file lain bernama config.lua dan menempatkannya di dalam folder proyek Anda. File config.lua menangani semua konfigurasi runtime seperti tinggi, lebar, jenis skala, dan kecepatan frame. Untuk permainan, kita akan menyiapkan aplikasi kita menjadi 320x480, berada di kotak surat dan memiliki 30 bingkai per detik.


3. Membangun main.lua

Sekarang setelah proyek kita dikonfigurasi, kita dapat bergerak maju dengan membuat main.lua. File main.lua adalah titik awal dari setiap aplikasi yang dibangun dengan Corona SDK, jadi buat file baru bernama main.lua dan pindahkan ke folder proyek Anda. Di dalam file main.lua kita, kita akan menyembunyikan bilah status, menambahkan beberapa variabel global, dan menggunakan fitur Corona Storyboard untuk mengelola adegan kita.


4. Membangun Menu

Dengan pengaturan file main.lua, kita akan melanjutkan ke menu. Menu untuk game ini akan sederhana. Ini akan menampilkan judul game dan tombol untuk memulai game.

Langkah 1

Untuk memulai, buat file baru bernama menu.lua dan tempatkan file di folder proyek Anda. Penambahan pertama ke file ini adalah menambahkan storyboard dan pustaka widget. Sementara storyboard akan memungkinkan kita untuk dengan mudah mengelola adegan kita, perpustakaan widget akan memungkinkan kita untuk dengan mudah menambahkan elemen umum ke aplikasi kita. Dalam hal ini, kita akan menggunakan pustaka widget untuk menambahkan tombol ke menu kami. Kita akan membahasnya nanti.

Langkah 2

Setelah membutuhkan, kita akan membuat fungsi pertama yang disebut scene:createScene(). Fungsi ini akan dipanggil saat adegan tidak ada dan merupakan tempat yang sempurna untuk judul dan tombol game kita.

Langkah 3

Di dalam scene:createScene() function, kita akan membuat objek tampilan baru yang akan digunakan sebagai background. Jika Anda belum melakukannya, pastikan Anda mengunduh file sumber untuk tutorial ini dan tempatkan semua grafik di dalam folder bernama gambar dalam proyek Anda.

Objek tampilan background akan dipusatkan di layar dan dimasukkan ke dalam variabel grup. Dengan memasukkan objek tampilan ke dalam variabel grup, kita memberi tahu Corona bahwa objek ini milik adegan ini. Ketika kita berganti layar, Corona akan tahu untuk menghapus objek ini atau menyembunyikannya karena kita tidak lagi melihat adegan menu.

Tampilan yang mendalam pada storyboard berada di luar ruang lingkup tutorial ini, tetapi Anda dapat membaca lebih lanjut di dokumentasi resmi.

Langkah 4

Setelah objek background, kita akan menempatkan objek teks yang akan menampilkan judul permainan. Objek teks ini akan dipusatkan di layar dan dimasukkan ke dalam variabel grup.

Langkah 5

Penambahan terakhir ke fungsi scene:createScene() akan menjadi widget tombol. Widget ini akan memungkinkan pemain memulai permainan. Sebelum kita dapat menambahkan widget, kita perlu membuat fungsi yang akan menangani acara sentuh.

Ketika tombol disentuh, fungsi berikut akan dipanggil. Fungsi ini akan mengirim pemain ke adegan permainan, yang akan kita buat nanti.

Langkah 6

Setelah fungsi onPlayBtnRelease, kita akan menambahkan tombol ke adegan menu. Kita menambahkan tombol dengan menggunakan widget.newButton dengan beberapa parameter. Properti label akan mengatur teks tombol dan properti onRelease akan memberitahu aplikasi kita yang berfungsi untuk menembak ketika disentuh. Kemudian, kita akan menempatkan tombol di tengah layar dan memasukkannya ke dalam variabel grup. PlayBtn akan menjadi bagian terakhir yang ditambahkan ke scene: createScene() function.

Langkah 7

Tepat setelah scene:createScene() function, kita akan menambahkan scene:enterScene() function. Fungsi ini akan dipanggil setelah adegan dibuat dan berada di layar.

Langkah 8

Untuk menyelesaikan file menu.lua, kita akan menambahkan dua pendengar acara dan mengembalikan variabel adegan. Ini merupakan langkah penting karena kedua pendengar acara akan mengaktifkan fungsi yang sesuai dan mengembalikan variabel adegan untuk menandai akhir dari file.


5. Logika Game

Sekarang, kita telah menyelesaikan konfigurasi, file main.lua dan file menu.lua. Selanjutnya, kita akan menciptakan logika untuk permainan.

Langkah 1

Logika permainan akan disimpan di dalam file bernama game.lua. Untuk memulai, buat file baru bernama game.lua dan letakkan di dalam folder proyek Anda. Penambahan pertama kami ke file baru ini membutuhkan Corona's Storyboard.

Langkah 2

Selanjutnya, kita akan menambahkan fisika ke permainan. Kita akan menggunakan fisika untuk membuat deteksi tabrakan antara peluru dan kapal musuh lebih mudah. Tepat setelah kemampuan fisika ditambahkan, kita akan menghentikannya sehingga tidak mengganggu penciptaan adegan.

Langkah 3

Setelah fisika, kita akan menentukan variabel untuk permainan kita.

Langkah 4

Kumpulan variabel berikutnya akan digunakan sebagai pengaturan untuk permainan kita. Jangan ragu untuk mengubah kecepatan permainan atau meningkatkan jumlah nyawa untuk pemain.

Langkah 5

Sekarang kita akan membuat kita scene:createScene function.

Langkah 6

Selanjutnya, kita akan membuat fungsi yang akan diaktifkan ketika objek tampilan latar belakang disentuh, dan fungsi ini akan berisi sebagian besar logika permainan kita. Ketika dipecat, kita akan memutar monyet ke arah acara sentuh dan menembakkan peluru ke arah acara sentuh yang sama.

Pertama, mari kita membuat fungsi menyentuh dan membuat pernyataan kondisional sehingga logika kita hanya berjalan selama fase dimulai.

Dalam pernyataan jika-maka, kita menggunakan perpustakaan matematika untuk menentukan sudut antara monyet dan acara sentuhan. Ini dilakukan dengan menggunakan kombinasi math.deg dan math.atan2 untuk menemukan di mana monyet harus diputar. Setelah derajat rotasi ditemukan, kita putar monyet ke posisi yang sesuai.

Karena fungsi ini akan menembakkan peluru, kita harus membuat peluru sebagai objek tampilan. Setelah dibuat, kita akan membuat objek fisik sehingga dapat merespon tabrakan dengan musuh.

Sekarang kita memiliki peluru, kita perlu mencari tahu ke mana harus mengirimnya. Untuk melakukan ini, pertama-tama kita menentukan apakah kita perlu mengirim peluru ke kiri atau ke kanan dan kemudian menggunakan rumus y = mx + b untuk menentukan lokasi y. Sedikit matematika terakhir kita adalah untuk menemukan jarak antara dua titik sehingga kita dapat menentukan seberapa cepat untuk memproyeksikan peluru.

Sekarang kita tahu jarak dan koordinat x / y dari tujuan peluru, kita dapat mengirim peluru ke tujuan menggunakan transition.to. Kita juga perlu menyertakan beberapa pernyataan akhir untuk menyelesaikan fungsi yang disentuh.

Langkah 7

Setelah semua matematika itu, beberapa langkah selanjutnya sederhana saja. Kita akan menambahkan latar belakang ke permainan kita (kita akan melampirkan pendengar acara ke latar belakang nanti), monyet, dan objek teks untuk menampilkan skor.

Kita juga akan memasukkan tiga pisang untuk mewakili tiga kehidupan pemain di kanan atas layar.

Langkah 8

Selanjutnya, kita akan membuat fungsi yang akan mengirim orang jahat ke arah pemain kita. kita akan memanggil fungsi ini createBadGuy dan kita pertama-tama akan menentukan dari arah mana untuk mengirim orang jahat.

Setelah kita menentukan arah asal orang jahat itu, kita akan membuat objek tampilan baru untuk orang jahat dan mengubah orang jahat menjadi objek fisik. kita akan menggunakan fisika untuk mendeteksi tabrakan nantinya.

Kemudian, kita akan menggunakan transition.to Corona.untuk memindahkan orang jahat ke tengah layar. Setelah transisi selesai dan musuh belum tertabrak, kita akan menghapus penjahat dan mengurangi satu kehidupan dari pemain.

Jika kehidupan pemain telah mencapai 0 atau kurang, kita akan berhenti mengirim orang jahat dan menghapus kemampuan pemain untuk mengirim lebih banyak peluru. Kita juga akan menampilkan dua objek teks untuk menunjukkan bahwa permainan sudah berakhir dan membiarkan pemain kembali ke menu.

Langkah 9

Fungsi terakhir di dalam scene:createScene adalah untuk mendeteksi tabrakan. Ketika peluru dan orang jahat bertabrakan, fungsi ini akan terpicu dan hal berikut akan terjadi:

  • Tambahkan 1 ke skor pemain dan perbarui objek teks skor.
  • Setel alfa dari kedua objek ke 0.
  • Batalkan transisi pada setiap objek sehingga tidak mengganggu proses penghapusan.
  • Akhirnya, kita akan membuat timer yang akan menunggu 1 milidetik sebelum melepaskan kedua objek. Merupakan ide yang buruk untuk menghapus objek tampilan di tengah-tengah deteksi tabrakan.

Langkah 10

Setelah scene:createScene, kita akan menulis fungsi adegan masuk kita. Fungsi ini diaktifkan setelah adegan dibuat dan pindah ke layar. Dalam fungsi adegan enter, kita akan mulai semua fungsi yang kita menulis dalam fungsi menciptakan adegan.

Langkah 11

Kami hampir selesai! Bagian terakhir dari kode adalah menambahkan pendengar peristiwa scene dan mengembalikan adegan variabel. Pendengar acara akan memicu fungsi dan pernyataan kembali memungkinkan Corona tahu kita selesai dengan adegan ini.


Kesimpulan

Saya harap Anda menikmati tutorial ini untuk membuat game Monyet Defender dengan Corona SDK! Kami membahas banyak topik mulai dari papan cerita hingga rumus geometrik! Jika Anda memiliki pertanyaan atau komentar, silakan tinggalkan di bawah dan terima kasih telah membaca.

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.