Tutorial Construct 2: Membuat Musuh Bergerak dan Sistem Interaksi Pemain
Menambahkan musuh bergerak sederhana (Goomba-style), sistem tabrakan, dan interaksi dengan pemain.
1. Membuat Sprite Musuh
Langkah awal:
-
Klik kanan → Insert New Object → Sprite.
-
Ubah ukuran menjadi 16×16 piksel.
-
Gambar musuh sederhana (N9Ark membuat karakter hijau kecil karena “dia penjahat”).
-
Letakkan di platform, tetapi ketika ditekan Play, ia belum melakukan apa pun.
2. Menambahkan Variabel Arah dan Perilaku
Musuh akan bergerak kanan–kiri otomatis.
-
Tambahkan Instance Variable bernama
dir(direction).-
Nilai awal: 1 → bergerak ke kanan.
-
Jika nilainya -1, berarti ke kiri.
-
-
Tambahkan Behavior → Platform agar musuh bisa mengikuti hukum gravitasi dan permukaan.
-
Ubah Max Speed = 30 (gerak lambat).
-
Matikan Default Controls = No agar tidak dikendalikan pemain.
-
➡️ Kini musuh berperilaku seperti objek platform yang bisa bergerak, tapi perlu logika arah di Event Sheet.
3. Menambahkan Logika Gerak Otomatis
Dalam Event Sheet, buat grup baru bernama Enemies.
-
Tambahkan event:
Musuh kini bisa berjalan otomatis.
-
Namun, ia akan jatuh dari tepi platform. Jadi perlu sistem deteksi tepi.
4. Deteksi Tepi dan Balik Arah
Gunakan “Is overlapping at offset”:
-
Fungsi ini mengecek apakah di bawah musuh (dengan sedikit pergeseran) masih ada platform.
-
Logika:
➡️ Hasil: musuh berbalik arah otomatis di tepi platform, berjalan bolak-balik tanpa jatuh.
5. Mengatasi Bug Langkah Lebar
N9Ark menemukan bug:
Musuh bisa “melompati celah kecil” antar platform karena langkah deteksinya terlalu besar.
Solusi:
-
Perkecil ukuran sprite musuh dan sesuaikan collision polygon (misalnya ubah lebar dari 16 menjadi 14 piksel, X offset -15 hingga +14).
-
Dengan begitu, deteksi tepi jadi lebih akurat dan tidak melewati celah sempit.
6. Membuat Interaksi dengan Pemain
Tambahkan kelompok baru di Event Sheet:
-
Grup:
Player Interaction.
a. Jika Pemain Melompat di Atas Musuh
Event:
Aksi:
-
Player: Set vector Y = -400 (agar memantul ke atas).
-
Enemy:
-
Ganti animasi ke “Death”.
-
Nonaktifkan collision.
-
Beri dorongan ke atas (vector Y = -200).
-
Tunggu 1 detik → lalu destroy (musuh hilang).
-
➡️ Hasil: saat pemain menginjak musuh, musuh “mati” dan jatuh ke bawah dengan efek pantulan pemain.
b. Jika Pemain Menabrak dari Samping
Tambahkan event:
Aksi:
-
Player vector X = ±200 (terpental ke arah berlawanan).
-
Jika pemain tidak sedang invulnerable, maka:
-
Kurangi Health -1.
-
Aktifkan fungsi Invulnerability (Invol) selama 1 detik (dari tutorial sebelumnya).
-
➡️ Saat menabrak musuh dari samping, pemain kehilangan 1 health dan sementara kebal agar tidak terkena spam damage.
7. Memperbaiki Konflik dengan Logika Invulnerability
Masalah:
-
Saat pemain melompat dan membunuh musuh, kadang tetap kehilangan health karena urutan logika tabrakan.
Solusi: -
Tambahkan kondisi Else untuk memisahkan logika serangan dari bawah dan atas.
➡️ Sekarang sistem tabrakan berfungsi sempurna.
Source: Youtube Action Cancel