Karakter realistis berinteraksi, biasanya dengan berbicara satu sama lain. Pastikan Anda menyajikan dialog Anda dengan cara yang dapat diakses dan saling melengkapi.

Jika game Anda menampilkan karakter, Anda mungkin ingin mereka berkomunikasi satu sama lain. Sistem dialog menyediakan percakapan interaktif, perkembangan cerita, dan pengembangan karakter. Pustaka Python Arcade memudahkan untuk mengintegrasikan sistem dialog ke dalam basis kode yang ada.

Dengan sistem dialog, Anda dapat membuat percakapan antara karakter pemain dan non-pemain (NPC). Pemain dapat memilih respons atau membuat keputusan yang memengaruhi narasi atau hasil game.

Sistem ini memungkinkan Anda membuat cerita yang menarik dan membuat interaksi yang dinamis, memberikan pengalaman gameplay yang lebih imersif.

Buat Game Sederhana

Untuk memulai, buat game sederhana menggunakan perpustakaan Arcade. Ini akan menjadi dasar untuk menerapkan sistem dialog.

Kode yang digunakan dalam artikel ini tersedia di sini repositori GitHub dan gratis untuk Anda gunakan di bawah lisensi MIT.

Buat file baru bernama simple-game.py dan tentukan a Permainan kelas yang mewarisi dari arcade. Jendela. Tetapkan dimensi layar, inisialisasi posisi pemain dan platform, dan terapkan fungsi menggambar dasar. Itu pemain dapat bergerak ke kiri dan ke kanan menggunakan tombol panah.

Inilah hasilnya:

Menambahkan Kotak Dialog

Sekarang setelah Anda memiliki struktur permainan dasar, tambahkan kotak dialog yang muncul saat pemain bertabrakan dengan musuh. Anda dapat membuat kotak dialog menggunakan bentuk sederhana dan menampilkannya di layar.

Tambah sebuah dialog_aktif bendera ke Permainan class, yang menunjukkan apakah kotak dialog harus ditampilkan. Dalam on_update metode, memeriksa tabrakan musuh, dan jika terdeteksi, atur dialog_aktif ke BENAR.

Dalam on_draw metode, panggil draw_dialogue_box metode jika dialog aktif. Itu draw_dialogue_box metode menggambar persegi panjang sebagai latar belakang kotak dialog dan menampilkan pesan teks.

Buat file baru bernama dialog-box.py dan tambahkan kode dengan pembaruan di bawah ini:

# Di dalam kelas Game

kelasPermainan(arcade. Jendela):
def__init__(diri sendiri):
# ...

self.dialog_aktif = PALSU

defon_update(mandiri, waktu_delta):
jika self.check_enemy_collision():
self.dialog_aktif = BENAR

defon_draw(diri sendiri):
# ...

jika self.dialogue_aktif:
self.draw_dialogue_box()

defcheck_enemy_collision(diri sendiri):
radius_pemain = 25
jarak_x = abs (self.player_x - self.platform_x)
distance_y = abs (self.player_y - self.platform_y)
gabungan_radius = radius_pemain + 25

jika jarak_x < gabungan_radius Dan jarak_y < radius_gabungan:
kembaliBENAR
kalau tidak:
kembaliPALSU

defdraw_dialogue_box(diri sendiri):
teks = "Halo, pemain! Apa kabarmu?"

arcade.draw_rectangle_filled (SCREEN_WIDTH // 2,
SCREEN_HEIGHT // 2, 500, 200, putih)

arcade.draw_text (teks, SCREEN_WIDTH // 2,
SCREEN_HEIGHT // 2 + 20, hitam, font_size=16,
jangkar_x="tengah", jangkar_y="tengah")

Di bawah ini adalah outputnya:

Menampilkan Teks Dialog

Sekarang, Anda dapat menyempurnakan sistem dialog Anda dengan menampilkan pesan teks dinamis. Buat daftar string dialog dan ulangi untuk mensimulasikan percakapan. Setiap kali kotak dialog muncul, itu akan menampilkan pesan baru.

# Di dalam kelas Game

kelasPermainan(arcade. Jendela):
def__init__(diri sendiri):
# ...

self.dialog_aktif = PALSU
self.dialogue_messages = [
"Halo, pemain! Apa kabarmu?",
"Cuaca bagus hari ini, bukan?",
"Waspadalah terhadap musuh yang mengintai di depan!"
]
self.dialogue_index = 0

defdraw_dialogue_box(diri sendiri):

arcade.draw_rectangle_filled (SCREEN_WIDTH // 2,
SCREEN_HEIGHT // 2, 500, 200, putih)

arcade.draw_text (self.dialogue_messages[self.dialogue_index],
SCREEN_WIDTH // 2, SCREEN_HEIGHT // 2 + 20, hitam, font_size=16,
jangkar_x="tengah", jangkar_y="tengah")

Perkenalkan tiga variabel baru: dialog_messages, dialog_index, Dan dialog_aktif. Daftar Dialog_messages berisi pesan teks yang akan ditampilkan oleh kotak dialog. Dialog_index melacak pesan saat ini untuk ditampilkan. Setiap kali kotak dialog muncul, Anda dapat menaikkan indeks_dialog untuk menampilkan pesan berikutnya.

Menambahkan Tombol

Untuk membuat sistem dialog lebih interaktif, tambahkan tombol untuk mengubah teks dialog saat ditekan oleh pemain. Buat file baru bernama multi-teks.py dan tambahkan kode dengan pembaruan di bawah ini:

# Di dalam kelas Game

kelasPermainan(arcade. Jendela):
def__init__(diri sendiri):
# ...

self.dialog_aktif = PALSU

self.dialogue_messages = [
"Halo, pemain! Apa kabarmu?",
"Cuaca bagus hari ini, bukan?",
"Waspadalah terhadap musuh yang mengintai di depan!"
]

self.dialogue_index = 0

defon_mouse_press(diri, x, y, tombol, pengubah):
index = (self.dialogue_index + 1) % len (self.dialogue_messages)

jika self.dialogue_aktif:
jika tombol == arcade. MOUSE_BUTTON_LEFT:
self.dialogue_index = indeks

defdraw_dialogue_box(diri sendiri):
# ...

arcade.menggambar_teks("Berikutnya", SCREEN_WIDTH // 2, SCREEN_HEIGHT // 2 - 50,
hitam, font_size=16, jangkar_x="tengah", jangkar_y="tengah")

Tambahkan on_mouse_press metode ke Permainan kelas. Saat dialog aktif dan Anda menekan tombol kiri mouse, metode ini menambah dialog_index untuk menampilkan pesan berikutnya di dialog_messages daftar. Itu % len (self.dialogue_messages) memastikan bahwa indeks membungkus ke awal daftar saat mencapai akhir.

Termasuk Fitur Tambahan

Untuk meningkatkan sistem dialog lebih lanjut, Anda dapat mempertimbangkan untuk menambahkan fitur tambahan berikut:

Pilihan ganda

Alih-alih satu pesan, Anda dapat memberikan beberapa pilihan untuk dipilih pemain. Ini memungkinkan pemain untuk memengaruhi hasil percakapan atau membuat keputusan yang memengaruhi perkembangan game.

Untuk menerapkan ini, Anda dapat memodifikasi draw_dialogue_box metode untuk menampilkan daftar pilihan dan menangani pilihan pemain yang sesuai.

Potret Karakter

Untuk menambahkan bakat visual pada sistem dialog Anda, Anda dapat memasukkan potret karakter di samping teks. Setiap karakter dapat memiliki gambar atau sprite yang sesuai yang mewakili mereka selama percakapan. Menampilkan potret karakter dapat membantu pemain mengidentifikasi pembicara dan menambah kedalaman pengalaman mendongeng.

Animasi Teks

Anda dapat menganimasikan teks untuk membuatnya lebih menarik secara visual. Misalnya, Anda dapat membuat teks muncul secara bertahap, satu karakter dalam satu waktu, untuk mensimulasikan pengetikan. Ini menciptakan rasa antisipasi dan dapat membuat dialog lebih menarik bagi pemain.

Efek suara

Menambahkan efek suara ke sistem dialog Anda dapat meningkatkan suasana permainan secara keseluruhan. Misalnya, Anda dapat memutar efek suara saat kotak dialog muncul atau saat pemain memilih opsi dialog. Isyarat audio ini dapat membuat percakapan terasa lebih imersif dan berdampak.

Praktik Terbaik untuk Sistem Dialog

Saat menerapkan sistem dialog, ingatlah praktik terbaik berikut:

Hapus Antarmuka Pengguna

Pastikan kotak dialog dan teks dapat dibaca dan diposisikan dengan benar di layar. Gunakan font, warna, dan ukuran yang sesuai agar teks mudah dibaca.

Suara Karakter yang Konsisten

Pertahankan konsistensi dalam cara karakter berbicara dan nada yang mereka gunakan sepanjang dialog. Ini membantu dalam menciptakan percakapan yang dapat dipercaya dan menarik.

Relevansi dengan Gameplay

Pastikan bahwa dialog memberikan kontribusi yang berarti bagi narasi permainan atau memberikan informasi yang relevan kepada pemain. Hindari percakapan berlebihan atau tidak relevan yang dapat mengganggu alur permainan.

Pengujian dan Iterasi

Mainkan sistem dialog Anda secara menyeluruh untuk mengidentifikasi masalah atau ketidakkonsistenan apa pun. Ulangi dialog Anda berdasarkan umpan balik pemain untuk meningkatkan kualitas dan dampak percakapan secara keseluruhan.

Jadikan Game Lebih Menyenangkan Dengan Sistem Dialog

Menambahkan sistem dialog ke game Anda menggunakan perpustakaan Arcade di Python dapat sangat meningkatkan pengalaman pemain. Ini memungkinkan percakapan interaktif, penceritaan, dan pengembangan karakter, menjadikan game Anda lebih imersif, menarik, dan menyenangkan untuk dimainkan.