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

Bangun Game Runner Tanpa Akhir dari Scratch: Hambatan dan Musuh

by
Difficulty:BeginnerLength:LongLanguages:
This post is part of a series called Corona SDK: Build an Endless Runner Game From Scratch.
Build an Endless Runner Game from Scratch: Adding Events
Build an Endless Runner Game from Scratch: Game Over & Scoring

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

Selamat datang di bagian keenam dalam seri tutorial Endless Runner kami! Game kami mulai terbentuk dan terasa lebih halus. Setelah menyelesaikan langkah hari ini, akan jauh lebih interaktif dan menyenangkan untuk dimainkan. Kami akan menambahkan dua acara lagi yang akan menciptakan beberapa tantangan baru yang menarik bagi para pemain. Pertama, kita akan menambahkan kemampuan bagi pahlawan kita untuk menembakkan sebuah baut kecil untuk membersihkan rintangan yang menghampirinya. Perlu diingat bahwa gambar kecil 'kebiruan' dipecat dari monster kami. Gambar yang kami kerjakan tidak terlalu profesional karena hanya untuk latihan. Setelah monster memiliki kemampuan untuk menembakkan beberapa baut, kita juga akan menambahkan kejadian yang akan mengirim rintangan kembali ke arahnya. Setelah itu, kita akan menciptakan dua jenis hambatan: yang pertama adalah dinding lonjakan yang akan duduk di tanah dan perjalanan pada kecepatan yang sama sebagai dasar, dan yang kedua adalah hantu yang akan terbang dari sisi kanan atas layar ke arah pemain.

Jadi, mari kita mulai! Hal pertama yang perlu kita lakukan adalah untuk memastikan bahwa kita memiliki semua aset di tempat yang tepat. Download file terlampir untuk tutorial ini, dan dalam folder "baru" Anda akan menemukan tiga aset baru. Anda bisa juga klik kanan pada gambar dan menyimpannya dalam folder yang benar. Gambar harus bernama spikeBlock.png, ghost.png dan blast.png.

Buka file main.lua Anda yang dapat ditemukan dalam folder "lama" download tutorial. Kita akan mulai dengan memberikan pemain kami kemampuan untuk api karena kami tidak ingin meninggalkan mereka berdaya seperti mereka dibombardir dengan tantangan baru! Kita dapat menambahkan kemampuan ini dalam tiga langkah. Yang pertama akan instantiate 5 baut dan menempatkan mereka dalam kelompok. Daripada menciptakan dan menghancurkan objek setiap kali kita ingin menggunakannya, kami dapat menjadi lebih efisien dengan mempersiapkan mereka dan menyimpannya off-layar sampai kita perlu untuk menggunakannya. Kami benar-benar akan melakukan hal yang sama untuk masing-masing dari tiga gambar yang berbeda, jadi pergi ke depan dan menambahkan kode ini di antara mana kita mendeklarasikan variabel kecepatan dan mana kita membuat kita blok.

Perhatikan bahwa mereka semua memiliki beberapa ciri umum. Kita perlu untuk pergi melalui dan nama mereka dalam kasus kita pernah ingin referensi mereka secara individual. Kami memberi mereka id, juga memberi kita lebih banyak pilihan referensi di masa mendatang. Kami memberi mereka mereka offscreen x dan y Koordinat (kita tumpukan gambar yang serupa di atas satu sama lain). Hal lain yang kita memberi mereka semua adalah variabel 'hidup'. Ini diatur ke false secara default ketika mereka akan duduk dari layar. Memberikan sprite variabel ini akan memungkinkan kita untuk dengan cepat memeriksa apakah sprite digunakan atau tidak. Sprite hanya yang memiliki sesuatu yang berbeda adalah sprite hantu. Untuk hantu sprites kami akan menambahkan variabel kecepatan sehingga kita dapat memiliki hantu bergerak secara acak kecepatan. Kami juga akan mengatur nilai alpha hantu untuk.5 sehingga mereka muncul lebih, harus kami katakan, ghostlike!

Dua hal yang perlu kita lakukan adalah untuk menciptakan kelompok-kelompok mereka masing-masing tampilan, kemudian tambahkan kelompok-kelompok ke kelompok tampilan layar sehingga kita akan dapat melihat mereka dalam permainan. Tambahkan ini tepat di bawah tampilan kelompok lain Instansiasi.

Selanjutnya, turun ke bagian mana kita menambahkan segala sesuatu untuk layar. Menambahkan mereka menampilkan kelompok dengan sisanya. Aku akan membuat Orde Baru yang terlihat seperti ini:

Setelah Anda memiliki segala sesuatu di sana, itu akan terlihat seperti ini jika Anda menjalankannya dalam perspektif iPhone 4:

Setelah mendapatkan itu di tempat, kami akan menambahkan fungsi yang update semua baut yang rakasa kami tunas. Tambahkan fungsi berikut di bawah fungsi checkCollisions().

Fungsi di atas akan memiliki dua tanggung jawab utama. Yang pertama adalah untuk memperbarui posisi ledakan dan periksa untuk melihat apakah itu bertabrakan dengan apa pun. Anda dapat melihat bahwa ketika itu bertabrakan dengan sesuatu, cara kita menghancurkannya adalah Hanya memindahkannya off-layar dan mengatur isAlive ke false. Ini akan mendapatkan baut siap untuk digunakan lagi. Sesuatu yang lain yang Anda mungkin telah memperhatikan adalah bahwa kita hanya instantiate lima baut. Jadi, apa yang terjadi jika semua lima baut sudah dalam bermain dan pengguna mencoba untuk api semburan lain? Apa-apa! Dengan cara itu membuat sekarang, pengguna dibatasi untuk hanya memiliki lima ledakan aktif pada satu waktu. Hal ini mudah untuk mengubah oleh instantiating lebih pada awal permainan, tetapi itu menunjukkan Anda bagaimana untuk mengatur batas pemain. Ini juga merupakan metode yang kita akan gunakan untuk memastikan bahwa 50 hantu tidak secara acak menghasilkan sekaligus pada layar, seketika membunuh pemain.

Selanjutnya kita harus turun ke fungsi tersentuh untuk memberikan pemain kemampuan untuk menembak. Ubah fungsi yang disentuh agar sesuai dengan yang berikut:

Akhirnya, pastikan untuk menambahkan updateBlasts() ke fungsi update utama dan Anda harus siap untuk pergi. Memberikan yang mencoba dan melihat kekuatan mengagumkan rakasa kami yang sekarang! Setelah menjalankan itu Anda harus melihat sesuatu seperti ini:

Sekarang bahwa para pemain dapat mempertahankan diri, mari kita pergi ke depan dan memberi mereka beberapa tantangan. Kedua peristiwa berikutnya akan diatasi dengan hanya menembak mereka sekali. Setelah mereka di tempat, namun, itu akan mudah bagi Anda untuk mengubah mereka sesuai dengan proyek Anda sendiri. Kita akan mulai dengan dinding berduri.

Dinding berduri akan hanya diletakkan di atas tanah saat ini dan bergerak pada kecepatan konstan yang sama sebagai tanah di sekitarnya. Hal pertama yang dilakukan adalah menambahkan fungsi updateSpikes. Tepat di bawah fungsi updateBlasts() Tambahkan kode berikut:

Ini akan melakukan hal yang sama sebagai fungsi updateBlast kami. Ini hanya akan memperbarui posisi dinding berduri dan periksa untuk melihat jika ia pergi dari layar (yang saat ini tidak bisa melakukannya karena itu akan memukul pemain pertama). Hanya dalam kasus, meskipun, kami akan memeriksa untuk memastikan. Hal terakhir yang perlu kita lakukan adalah membuat acara untuk itu. Dalam checkEvent() di bawah pemeriksaan lain menambahkan ini:

Kami akan benar-benar menambahkan dinding kami dalam fungsi updateBlocks(). Dengan cara itu kami yakin untuk memiliki groundLevel saat ini. Tepat sebelum Anda memanggil checkEvent() masukkan berikut:

Hal terakhir yang harus dilakukan dalam rangka untuk mendapatkan ini berdiri dan berjalan adalah menambahkan deteksi tabrakan untuk melihat jika pemain kami berlari ke dalamnya atau tidak. Ini diletakkan di bawah bagian dalam checkCollisions() mana kami memeriksa tabrakan antara blok dan rakasa.

Pastikan untuk menambahkan updateSpikes () ke fungsi pembaruan utama lagi dan jalankan! Anda sekarang harus memiliki lonjakan ini di jalan monster Anda.

Memberikan yang berputar dan praktek menembak mereka. Ingat untuk menguji untuk memastikan tabrakan bekerja dengan benar dengan ledakan. Juga pastikan bahwa berlari ke dinding benar-benar membunuh pemain. Setelah Anda telah diuji itu dan siap untuk lebih, mulai meletakkan kode di tempat untuk Roh.

Meletakkan Roh dalam hampir identik dengan menempatkan dinding dalam. Perbedaan terbesar antara keduanya adalah bahwa untuk Roh kita akan mengacak mana itu masuk di juga bagaimana cepat itu perjalanan. Kami juga akan membuat hantu move up dan down sehingga mereka selalu bergerak ke tempat pengguna. Detail khusus seperti yang akan membuat hambatan merasa sama sekali berbeda kepada pengguna, meskipun mereka bekerja dengan cara yang sama.

Mari kita mulai lagi dengan menambahkan fungsi updateGhosts(). Sementara kau di itu, pergi ke depan dan tambahkan updateGhosts() ke fungsi update utama juga.

Selanjutnya kembali ke fungsi checkEvent() dan tambahkan ini di bawah pemeriksaan sebelumnya:

Kali ini bukannya hantu bergerak dari fungsi updateBlocks, kita akan melakukannya dalam fungsi runEvent(). Tambahkan ini di bawah yang lain jika pernyataan:

Setelah itu di sana kita perlu memeriksa tabrakan antara rakasa dan hantu. Menambahkan ini ke checkCollions() tepat setelah kami melakukan pekerjaan untuk dinding berduri:

Anda seharusnya sudah memiliki segalanya di tempat, termasuk hantu untuk menghindari!

Permainan sekarang harus jauh lebih menyenangkan dan menantang bagi pengguna. Dalam tutorial berikutnya kita akan menambahkan dua hal lagi yang akan membuat permainan kami merasa lebih lengkap: (1) sebuah sistem penilaian, dan kematian (2) rakasa! Kami banyak dibahas dalam tutorial ini, jadi jika Anda memiliki pertanyaan, Harap suara dari dalam komentar di bawah ini. Terima kasih untuk 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.