Cara Membuat Kecerdasan Buatan untuk Slime Musuh | hyperPad Documentation

Loading...

Logo

IMG_0139.TRIM.GIF

Catatan: File proyek yang telah selesai untuk tutorial ini dapat ditemukan di akhir artikel ini.

Pendahuluan

Dalam tutorial ini, kita akan membuat kecerdasan buatan (AI) untuk slime musuh yang meyakinkan dalam permainan bergaya platformer. Kita akan membahas beberapa fitur dan perilaku yang lebih canggih di hyperPad, jadi tutorial ini mengasumsikan beberapa pengetahuan dasar tentang editor hyperPad. Jika Anda merasa perlu untuk lebih akrab dengan pembuatan game dari awal, Anda dapat memeriksa tutorial Panduan Lengkap - Membuat Permainan Platformer terlebih dahulu.

Untuk membuat slime terlihat "cerdas", slime harus melakukan lebih dari sekadar bergerak mundur dan maju, dan harus sedikit sadar akan sekitarnya.

Kedengarannya menarik! Tapi sebelum kita mulai, kita seharusnya terlebih dahulu merinci bagaimana slime musuh seharusnya berperilaku:

  • Alih-alih berjalan, slime akan melompat ke kiri atau kanan untuk bergerak.
  • Slime akan melompat ke arah pemain.
  • Jika pemain terlalu jauh, slime tidak akan bergerak (berdiam).
  • Slime akan mengurangi kesehatan pemain saat bersentuhan.
  • Slime dikalahkan jika pemain melompat di atasnya.

Sekarang kita tahu apa yang ingin kita lakukan, mari kita mulai!

Bagian 1: Pengaturan Proyek

Dalam tutorial ini, kita akan memulai proyek baru dari awal untuk menjaga semuanya tetap sederhana. Buat proyek baru dan atur ke "Pandangan Samping", Anda dapat meninggalkan pengaturan lainnya sebagai nilai default.

Dengan proyek baru Anda dibuat, pergi ke Perpustakaan Aset dan ambil "Paket Starter Platformer" oleh hyperPad di toko aset. (Ini gratis!)

a7JUWwiO.jpg

Photo_2019-06-26__1_15_13_PM.png

Sekarang kita memiliki beberapa aset untuk digunakan, silakan letakkan beberapa blok tanah dan buat dunia Anda. Jika Anda belum berada di sana, buka Perpustakaan Aset dan ketuk "Unduhan", lalu "Paket Starter Platformer".

Dalam gambar di bawah, beberapa blok tanah (folder "Dunia Rumput") telah ditempatkan dan sebuah latar belakang (folder "Latar Belakang") telah diatur.

Photo_2019-06-26__1_16_22_PM.png

Sekarang kita memiliki adegan yang bagus untuk bekerja, mari kita tambahkan objek Pemain dan Slime. Pergi ke Perpustakaan Aset dan buka folder "Unduhan" Anda, lalu folder "Paket Starter Platformer" jika belum terbuka.

Kita akan menggunakan "Manusia Ruang Hijau" sebagai pemain, jadi ketuk aset manusia ruang hijau untuk melihat semua siklus animasinya. Secara default, kita ingin pemain hanya berdiri, jadi ketuk animasi "Berdiri" dan tempatkan di adegan.

Dalam folder yang sama di Perpustakaan Aset, ada juga karakter animasi "Slime Merah Muda". Sempurna untuk kita gunakan sebagai musuh slime! Ketuk aset slime dan pilih animasi "Gerak" dan tempatkan slime di adegan Anda bersama karakter pemain Anda.

Photo_2019-06-26__1_17_03_PM.png

Sampai saat ini, kita sudah memiliki objek pemain dan objek slime, siap untuk kita gunakan. Namun, jika kita memainkan proyek kita sekarang, kita tidak akan dapat berinteraksi dengan permainan sama sekali. Jadi, kita harus membuat beberapa logika untuk membawa kehidupan ke permainan kita.

Bagian 2: Kontrol Pemain

Sebelum kita mulai memberikan kehidupan kepada musuh slime kita, kita harus terlebih dahulu memiliki beberapa kontrol pemain untuk manusia ruang hijau.

Ketuk manusia ruang hijau dan atur mode fisiknya dari Dinding ke Fisik, yang akan memungkinkan pemain bergerak bebas. Kemudian, ketuk tombol "Perilaku" untuk membuka editor Perilaku untuk karakter pemain kita sehingga kita dapat menambahkan beberapa kontrol.

IMG_0054.JPG

Di editor perilaku untuk karakter pemain kita, Anda seharusnya sudah melihat satu Perilaku Putar Animasi yang kesepian. Kita dapat membiarkan perilaku itu sendiri, tetapi kita bisa memberinya beberapa teman.

Dari bagian Interaksi, tempatkan di mana saja Perilaku Kontrol Joystick serta perilaku Lompat dengan Tombol. Dengan perilaku ini, karakter pemain kita sekarang siap untuk dikontrol. Namun, masih kurang animasi.

Ketuk perilaku Kontrol Joystick dan atur "Animasi Joystick Kiri" ke siklus animasi "Berjalan" di aset Manusia Ruang Hijau. Lakukan hal yang sama dengan "Animasi Joystick Kanan".

Photo_2019-06-26__1_18_28_PM.png

Sekarang karakter pemain kita berjalan, tetapi tidak mendemonstrasikan animasi saat mereka melompat.

Ketuk perilaku Lompat dengan Tombol dan ubah baik "Animasi Jatuh" dan "Animasi Melompat" ke siklus animasi "Lompat".

Photo_2019-06-26__1_18_56_PM.png

Jika kita memainkan permainan kita sekarang, kita dapat bergerak dan melompat! Selanjutnya, kita bisa mulai bekerja pada musuh slime kita.

Photo_2019-06-26__1_19_50_PM.png

Bagian 3: Gerakan Slime

Sesuai dengan yang kita rinci di bagian pendahuluan tutorial ini, kita ingin slime kita melompat ke arah pemain. Untuk melakukan ini, slime kita perlu tahu di mana posisi pemain di dunia. Karena itu, kita harus menambahkan Tag ke karakter pemain kita, sehingga perilaku kita dapat mengambil karakter pemain kita di scene mana saja.

Ketuk karakter pemain, dan pilih tab Tags di bagian bawah tampilan properti. Ketik "Pemain" di kolom teks di bagian atas menu tag dan tekan tombol tambah (+) di sampingnya. Sekarang karakter pemain kita diberi tag dengan tag "Pemain".

Photo_2019-06-26__1_23_06_PM.png

Mirip dengan apa yang kita lakukan pada karakter pemain, ketuk slime dan atur mode fisiknya dari Dinding ke Fisik. Kemudian, ketuk tombol Perilaku untuk membuka editor perilaku slime.

IMG_0058.JPG

Di editor perilaku, pergi ke bagian Kustom dan letakkan perilaku Timer ke dalam editor.

Ketuk perilaku Timer dan atur intervalnya menjadi 2 detik.

Photo_2019-06-26__4_21_59_PM.png

Ini akan menjadi awal logika untuk kecerdasan buatan slime kita.

Ide di sini adalah bahwa setiap 2 detik, slime kita akan "berpikir" apa yang harus dilakukan selanjutnya, seperti: Haruskah slime melompat? Jika slime memilih untuk melompat, ke mana arah slime melompat?

Selanjutnya, pergi ke bagian Transform dan letakkan perilaku Dapatkan Posisi di editor. Ketuk perilaku itu dan atur targetnya ke tag "Pemain" yang kita buat sebelumnya dengan mengetuk tab Tags di bagian bawah tampilan propertinya dan memilih "Pemain". Sekarang sambungkan Timer ke perilaku Dapatkan Posisi.

Photo_2019-06-26__4_22_22_PM.png

Sekarang kita tahu di mana posisi pemain kita di dunia! Untuk menentukan apakah pemain berada di kiri atau kanan slime, kita juga perlu tahu di mana slime berada di dunia, juga.

Seret perilaku Dapatkan Posisi lainnya ke editor. Secara default, perilaku itu sudah menargetkan slime kita sehingga kita tidak perlu melakukan apa-apa lagi selain menghubungkannya ke cabang logika kita. Silakan sambungkan Dapatkan Posisi untuk pemain ke Dapatkan Posisi untuk slime.

Photo_2019-06-26__4_22_40_PM.png

Opsional: Untuk mempermudah pemahaman, saya telah mengganti nama perilaku Dapatkan Posisi saya untuk menunjukkan dengan jelas apa yang mereka lacak: "Dapatkan Posisi Pemain" dan "Dapatkan Posisi Slime". Ini opsional, tetapi jika Anda juga ingin mengubah nama perilaku, Anda dapat melakukannya dengan mengetuk perilaku dan mengetuk namanya di bagian atas tampilan properti.

Sejauh ini, yang kita miliki adalah bahwa setiap 2 detik, slime mengambil posisi karakter pemain dan dirinya sendiri. Sekarang, setelah kita memiliki informasi itu, kita dapat menentukan apakah slime harus melompat ke kiri atau kanan.

Di bawah tab Logika, letakkan dan sambungkan perilaku Jika. Di propertinya, atur nilai pertama ke x-position dari Dapatkan Posisi pertama (tag "Pemain") dengan menyeret nilai output perilaku ke kolom di propertinya. Untuk nilai kedua, atur ke x-position kedua Dapatkan Posisi (slime). Terakhir, atur kondisi perilaku Jika ke "Lebih Kecil Dari" (<).

Catatan: Posisi x dari sebuah objek adalah nilai yang mewakili di mana objek berada di dunia pada sumbu x-nya. (Kiri dan kanan)

IMG_0061.JPG

Jadi, apa artinya semua ini? Perilaku Jika akan memeriksa untuk melihat apakah posisi x pemain lebih kecil dari posisi x slime. Jika kondisi di atas benar, maka ia akan mengeksekusi perilaku berikutnya yang terhubung. Apa yang pada dasarnya dimaksudkan ialah, jika pemain berada lebih jauh ke kiri daripada slime, maka eksekusi perilaku akan berlanjut.

Baiklah, kita sekarang telah mengatur logika untuk membuat slime melompat ke kiri, jadi mari kita buat slime melakukan persis itu!

Di bawah bagian Fisik, letakkan dan sambungkan perilaku Terapkan Gaya ke perilaku Jika. Di propertinya, atur Gaya ke: x = -0.5, y = 1. Kemudian, atur pengganda ke angka yang cukup besar, 200 harus cukup.

Photo_2019-06-26__1_28_06_PM.png

Sekarang, yang kita miliki adalah jika slime menemukan pemain lebih jauh ke kiri daripada dirinya, ia akan melompat ke atas (y = 1 × 200) dan sedikit ke kiri (x = -0.5 × 200).

Cobalah! Mainkan permainan dan uji untuk memastikan semuanya berfungsi. Apa yang seharusnya Anda lihat adalah slime melompat ke kiri setiap 2 detik, selama pemain berada di sebelah kiri slime. Jika Anda memindahkan pemain ke kanan slime, slime seharusnya berhenti melompat sampai Anda kembali ke kiri lagi.

Photo_2019-06-26__1_28_50_PM.png

Catatan: Jika slime Anda tidak bergerak, telusuri langkah-langkah sebelumnya untuk memastikan Anda tidak melewatkan apa pun. Pastikan perilaku terhubung dengan benar, dan bahwa mode fisik slime Anda diatur ke Fisik (dapat bergerak) alih-alih Dinding (tidak dapat bergerak). Juga, segera kita akan memperbaiki masalah di mana slime terkadang terbalik atau terbalik.

Kemajuan yang hebat sejauh ini! Jika slime Anda melompat seperti yang diharapkan, maka kita siap untuk melanjutkan. Mari kita selesaikan perilaku gerakannya dengan memungkinkan slime melompat ke kanan juga.

Kembali di editor perilaku slime, duplikat perilaku Jika. Seret dan sambungkan perilaku Jika yang baru ke kanan perilaku Jika yang asli. Ini akan mengubahnya menjadi perilaku "Else If".

Duplikat perilaku Terapkan Gaya juga, dan sambungkan itu ke perilaku Else If yang baru.

Di propertinya yang Else If, ubah kondisi dari "Lebih Kecil Dari" (<) menjadi "Lebih Besar Dari" (>). Ini akan memiliki efek kebalikan dari yang pertama Jika. Jika perilaku Jika pertama tidak benar, maka ia akan memeriksa untuk melihat apakah Else If benar sebagai gantinya. Artinya, jika pemain tidak berada di sebelah kiri slime, itu akan memeriksa apakah pemain berada di sebelah kanan slime, dan melanjutkan mengeksekusi perilaku yang terhubung ke Else If sebagai gantinya.

Seharusnya Anda sekarang memiliki cabang perilaku yang terlihat seperti ini:

Photo_2019-06-26__1_30_01_PM.png

Di penerapan gaya kedua (di bawah Else-If), ubah propertinya sehingga gayanya adalah x = 0.5, bukan x = -0.5. Sekarang, alih-alih melompat ke kiri, slime akan melompat ke kanan.

Photo_2019-06-26__1_30_05_PM.png

Mainkan proyek dan coba lagi! Sekarang Anda harus melihat slime melompat ke arah pemain. Luar biasa!

Satu hal yang mungkin Anda perhatikan saat menguji permainan adalah jika Anda bertabrakan dengan slime, ia terkadang bisa jatuh ke sisinya atau terbalik. Kita ingin slime tetap tegak, jadi mari kita perbaiki itu dengan cepat.

Kembali di editor perilaku slime, pergi ke bagian perilaku Transform dan letakkan perilaku Kunci Rotasi ke dalam editor. Tidak perlu menghubungkannya ke perilaku lain, kita ingin mengunci rotasinya secepat slime dibuat sehingga Anda dapat meninggalkannya seperti itu. Setelah Anda melakukan itu, coba permainan lagi. Kali ini Anda seharusnya kesulitan untuk mencoba menjatuhkan slime ke sisinya.

Photo_2019-06-26__1_32_26_PM.png

Anda mungkin juga telah memperhatikan bahwa animasi slime diputar terlalu cepat. Jika ini terjadi, ketuk perilaku Putar Animasi di editor perilaku slime dan ubah Frame Per Detik menjadi angka yang jauh lebih kecil. 6 frame per detik terlihat cukup baik.

Photo_2019-06-26__1_38_22_PM.png

Bagus! Sekarang slime kita tidak hanya bergerak dengan baik, tetapi juga terlihat bagus. Untuk sebagian besar, logika gerakan slime kita sudah lengkap.

Namun, kita juga ingin slime hanya melompat jika pemain berada di dekatnya. Dengan cara itu, jika kita membangun dunia yang lebih besar, slime yang jauh tidak akan segera mencoba melompat menuju dan menyerang pemain. Di bagian selanjutnya, kita akan melihat cara menambahkan kondisi lain untuk memblokir logika melompat jika pemain terlalu jauh.

Bagian 4: Slime Berdiam

Di bagian ini, kita akan menerapkan beberapa perilaku slime yang akan membuatnya berdiam (yakni, tidak bergerak) ketika pemain terlalu jauh.

Untuk mencapai ini, kita perlu mencari cara untuk mengukur jarak dari slime kita ke pemain. Kebetulan, ada perilaku yang tersedia untuk melakukan itu! Mari kita mulai.

Buka editor perilaku slime dan letakkan perilaku Hitung Jarak dari bagian Logika. Di propertinya, objek pertama sudah diatur ke slime kita. Untuk objek kedua, pergi ke menu Tabs dan pilih tag "Pemain".

Photo_2019-06-26__1_48_54_PM.png

Perilaku ini, saat dieksekusi, akan menghitung jarak dalam meter dari slime kita ke pemain. Menggunakan informasi itu, kita dapat melihat apakah pemain terlalu jauh dengan memeriksa jika jarak melebihi jarak tertentu.

Letakkan perilaku Jika lainnya dari bagian Logika dan sambungkan di bawah perilaku Hitung Jarak. Di propertinya, atur nilai pertama ke nilai output Hitung Jarak. Atur kondisinya menjadi "Lebih Kecil Dari" dan nilai keduanya menjadi 15.

Sekarang apa yang kita miliki, adalah cara untuk memeriksa apakah pemain terlalu jauh dengan melihat apakah jarak antara slime dan pemain kurang dari 15 (meter). Jika kondisi itu salah, maka pemain terlalu jauh dan perilaku Jika tidak akan mengeksekusi perilaku berikutnya.

IMG_0085.JPG

Sekarang kita memiliki kondisi baru kita siap digunakan, putuskan sambungan Dapatkan Posisi (slime) dan perilaku Jika lama dari langkah sebelumnya tutorial dan buat beberapa ruang untuk kondisi baru kita. Anda dapat memutuskan sambungan perilaku dengan mengetuk dan menahan koneksi antara perilaku.

Dengan kondisi jarak baru di tempatnya, sambungkan Dapatkan Posisi (slime) ke perilaku Hitung Jarak, lalu sambungkan perilaku Jika baru ke perilaku Jika lama. Anda sekarang seharusnya memiliki sesuatu seperti ini:

Photo_2019-06-26__1_50_57_PM.png

Ini mulai terlihat cukup rumit sekarang, tetapi idenya relatif sederhana. Sekarang yang kita miliki, adalah sebelum kita memeriksa arah mana slime harus melompat, kita terlebih dahulu memeriksa apakah jarak antara slime dan pemain adalah kurang dari 15 (meter).

Jika pemain lebih dekat dari 15 meter, maka kita akan melanjutkan dan memeriksa arah mana yang kita harus lompat, seperti biasa. Jika pemain berada lebih dari 15 meter jauhnya, kita tidak melanjutkan dan logika berakhir di sana hingga pada saat slime "berpikir" lagi (2 detik kemudian).

Berikan permainan sebuah percobaan! Jika Anda terlalu dekat dengan slime, ia harus mulai melompat menuju Anda, tetapi jika Anda bergerak terlalu jauh, ia harus berhenti bergerak dan menunggu sampai Anda mendekat lagi.

Slime kita mulai terlihat cukup menakutkan sekarang, tetapi masih belum memiliki cara untuk merusak pemain. Di bagian selanjutnya tutorial ini, kita akan memberikan pemain sebuah bilah kesehatan dan menerapkan beberapa logika untuk memberikan kerusakan kepada pemain.

Bagian 5: Menyerang Pemain

Sesuai dengan yang dijelaskan di bagian pendahuluan, kita akan menerapkan serangan slime dengan membuat slime melukai pemain ketika bersentuhan dengan pemain. Untuk memulai menerapkan cara bagi slime untuk menyerang pemain, kita harus terlebih dahulu memberikan pemain beberapa kesehatan.

Di editor utama, pilih lapisan UI Scene dan buat objek baru dengan tombolObjek Khusus. Ketuk "Bilah Kesehatan" untuk membuat bilah kesehatan untuk pemain kita.

IMG_0120.JPG

Karena ditempatkan di lapisan UI Scene, jika kita memilih untuk memperluas dunia kita dan membuat layar mengikuti pemain, itu akan tetap berada di tempat yang sama di layar.

Anda dapat menempatkannya di mana pun Anda lihat cocoknya di layar. Saya telah menempatkannya di tengah layar dekat bagian bawah.

Photo_2019-06-26__1_39_49_PM.png

Setelah Anda selesai mencari tempat yang baik untuk bilah kesehatan Anda, kita bisa mulai bekerja menambahkan cara untuk menghapus kesehatan dari bilah kesehatan. Kembali ke lapisan Utama di mana slime Anda dan buka editor perilakunya lagi.

Di tempat yang cukup kosong dalam perilaku slime Anda, letakkan perilaku Bertabrakan yang ditemukan di bawah bagian Objek. Di propertinya, atur objek kedua ke tag "Pemain".

IMG_0120.JPG

Di bawah bagian perilaku Kustom, letakkan perilaku Siarkan Pesan dan sambungkan di bawah perilaku Bertabrakan. Di propertinya, atur Kunci Acara ke "pemain terluka", dan atur nilainya ke -10.

Ingat: Kunci acara bersifat case sensitive! Untuk kesederhanaan, tutorial ini akan menggunakan huruf kecil untuk kunci acara. Anda dapat memilih untuk menggunakan huruf kapital jika Anda lebih suka, tetapi pastikan untuk mengingat huruf mana yang huruf kapital untuk nanti.

IMG_0121.JPG

Sekarang kita memiliki cara untuk mendeteksi ketika pemain harus mengambil kesehatan. Ketika pemain bertabrakan dengan slime, pesan untuk acara "pemain terluka" akan disiarkan dengan nilai -10. Kita akan menggunakan -10 untuk memberi tahu bilah kesehatan untuk "menambah" -10 kesehatan, dan karena nilai tersebut negatif, itu akan menghapus 10 kesehatan.

Kita masih perlu menambahkan logika itu ke bilah kesehatan, jadi mari kita lakukan sekarang. Keluar dari editor perilaku slime, lalu di editor utama ketuk lapisan UI Scene kemudian ketuk bilah kesehatan. Buka editor perilaku untuk bilah kesehatan.

Di editor perilaku bilah kesehatan, letakkan perilaku Terima Pesan dari bagian Kustom. Di propertinya, atur Kunci Acara ke "pemain terluka". (Ingat, ini case sensitive!)

IMG_0121.JPG

Perilaku ini akan menjadi pendengar kami untuk pesan "pemain terluka" yang dikirim kapan pun pemain menyerang slime. Ketika perilaku ini mendeteksi pesan disiarkan untuk "pemain terluka" di mana saja dalam permainan, ini akan dieksekusi.

Sekarang, tambahkan perilaku Tambahkan ke Bilah Kesehatan di bawah bagian perilaku UI dan hubungkan itu di bawah perilaku Terima Pesan.

Di propertinya Tambahkan ke Bilah Kesehatan, seret nilai output dari Terima Pesan ke kolom "Nilai untuk ditambahkan". Nilai itu adalah nilai -10 yang kami tetapkan sebelumnya di perilaku Siarkan Pesan di slime. Dengan cara ini, jika kita memilih untuk membuat musuh lain memberikan jumlah kerusakan yang berbeda, semua yang perlu kita lakukan adalah mengubah nilai di siaran ke apa pun yang kita inginkan dan bilah kesehatan akan menggunakan nilai itu sebagai gantinya!

Pastikan bahwa "Acara Di Penuh" dimatikan, dan "Acara Di Kosong" dihidupkan. Ini berarti bahwa jika bilah kesehatan mencapai nol kesehatan, ini akan mengeksekusi perilaku berikutnya.

IMG_0080.JPG

Di bawah bagian Scene, letakkan perilaku Muat Overlay dan sambungkan ke perilaku Tambahkan ke Bilah Kesehatan.

Di pengaturan Muat Overlay, ubah overlay yang dipilih menjadi overlay "Game Over" yang dibuat otomatis untuk Anda saat Anda membuat proyek baru.

IMG_0121.JPG

Mainkan permainan dan coba! Sekarang, setiap kali Anda bersentuhan dengan slime, itu akan menguras bilah kesehatan Anda. Ketika bilah kesehatan mencapai nol, maka permainan berakhir.

IMG_0121.JPG

Keren! Sekarang kita memiliki cara untuk memberikan kerusakan kepada pemain dan kalah dalam permainan.

Sesuatu terasa sedikit tidak tepat, meskipun. Kita tidak memberikan banyak umpan balik kepada pemain bahwa mereka telah tersentuh selain menghapus kesehatan dari bilah kesehatan.

Kita bisa memperbaiki ini dengan mendorong pemain dan slime menjauh satu sama lain, sehingga sangat jelas bahwa mereka telah bersentuhan, serta menjaga agar pemain tidak mengambil kerusakan terlalu cepat dengan bertabrakan dengan slime secara cepat.

Pergi ke editor perilaku slime (Anda mungkin perlu memilih lapisan Utama terlebih dahulu), dan letakkan perilaku Dorong Objek di bawah bagian Fisik. Hubungkan itu di bawah perilaku Siarkan Pesan dari sebelumnya dan buka propertinya.

Di propertinya, ubah objek kedua menjadi tag "Pemain" dengan membuka tab Tags dan memilih "Pemain". Ubah nilai Gaya menjadi 200, Gaya Multiplier Objek A menjadi 0.25, dan Gaya Multiplier Objek B menjadi 1.

IMG_0121.JPG

Sekarang ketika pemain bertabrakan dengan slime, itu akan mendorong pemain menjauh dari slime dengan gaya 200 (1 × 200 gaya) dan slime akan didorong menjauh dari pemain dengan gaya 50 (0.25 × 200 gaya).

Permainan kita mulai terasa sangat baik sekarang! Hanya satu masalah yang tersisa adalah kita memiliki slime yang tidak bisa dikalahkan dan pemain kita tidak memiliki cara untuk mengalahkannya. Di bagian selanjutnya, kita akan menerapkan cara agar pemain bisa melawan balik.

Bagian 6: Mengalahkan Slime

Untuk memungkinkan pemain kita menyerang slime dengan melompat di atasnya, kita harus mengubah cara kita menangani tabrakan dengan cara membuat slime mengabaikan bagian bawah pemain (kaki pemain) saat memberikan kerusakan.

Buka editor perilaku slime dan ketuk perilaku Bertabrakan yang kita buat di bagian sebelumnya tutorial. Nonaktifkan opsi "Di Bawah", yang akan mengabaikan tabrakan jika slime bertabrakan dengan bagian bawah kotak tabrakan pemain.

IMG_0121.JPG

Sekarang, slime kita tidak akan melukai pemain jika pemain melompat di atasnya. Sebagai gantinya, kita ingin melakukan logika yang berbeda saat itu terjadi.

Dengan peristiwa Bertabrakan yang dipilih, duplikat itu dan balik semua pilihan di perilaku Bertabrakan baru sehingga hanya peristiwa "Di Bawah" yang diaktifkan.

IMG_0121.JPG

Ini akan berfungsi sebagai titik masuk kita saat pemain melompat di atas slime.

Selanjutnya, letakkan dan sambungkan perilaku Hancurkan Objek dari bagian perilaku Objek. Perilaku ini harus sudah diatur untuk menghancurkan objek slime kita secara default.

IMG_0121.JPG

Sekarang ketika kita memainkan permainan kita, melompat di atas slime akan menghancurkannya. Tetapi sekali lagi, seperti yang dilakukan sebelumnya dengan terkena slime, itu tidak terasa sangat memuaskan.

Sama seperti yang kita lakukan di bagian sebelumnya tutorial, mari kita tambahkan Propel Objek lainnya. Duplikasi perilaku Propel Objek yang lebih lama dari logika kerusakan pemain dan hubungkan itu di bawah perilaku Hancurkan Objek. Propertinya dari perilaku Propel Objek yang lebih lama bisa tetap seperti semula.

IMG_0121.JPG

Sekarang ketika kita memainkan permainan, ada loncatan memuaskan ketika melompat di atas slime.

IMG_0130.TRIM.GIF

Kesimpulan & Latihan

Dan itulah! Kita telah memeriksa semua kotak yang dibuat di bagian pendahuluan:

  • Alih-alih berjalan, slime akan melompat ke kiri atau kanan untuk bergerak. Centang!
  • Slime akan melompat ke arah pemain. Centang!
  • Jika pemain terlalu jauh, slime tidak akan bergerak (berdiam). Centang!
  • Slime akan mengurangi kesehatan pemain saat bersentuhan. Centang!
  • Slime dikalahkan jika pemain melompat di atasnya. Centang!

Jika Anda sampai sejauh ini, Anda sekarang harus memiliki pemahaman yang cukup baik tentang bagaimana Anda dapat memberikan kecerdasan kepada musuh Anda, dan membuat mereka berpikir dan membuat keputusan sendiri. Bagus sekali!

Namun, selalu ada lebih banyak hal yang dapat dilakukan. Sebagai latihan, coba lakukan hal berikut sendiri:

  1. Putar animasi "terkena/mati" slime ketika slime dilompati oleh pemain.
  2. Putar animasi "terkena" pemain ketika slime menyerang pemain.
  3. Tambahkan beberapa keteracakan tentang seberapa jauh slime akan melompat setiap kali.

Sebuah file proyek yang telah selesai untuk tutorial ini dapat ditemukan di sini: Unduh Proyek Tutorial