Apa gunanya permainan tanpa skor? Beberapa dapat melakukannya tanpa, tetapi sebagian besar game yang Anda buat perlu memberi tahu pemain seberapa baik mereka melakukannya.

Skor adalah bagian integral dari banyak game karena memberikan ukuran kemajuan dan pencapaian bagi pemain.

Di Python, perpustakaan Arcade menawarkan cara sederhana dan efisien untuk mengelola skor dalam game. Dengan mengelola skor secara efektif, Anda dapat meningkatkan keterlibatan pengguna dan memberikan pengalaman bermain game yang lebih imersif.

Buat Game Sederhana

Sebelum memulai, pastikan Anda sudah pip diinstal pada perangkat Anda. Gunakan perintah ini untuk menginstal perpustakaan arcade:

pip menginstal arcade

Sekarang, buat game sederhana menggunakan perpustakaan Python's Arcade.

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

Dalam permainan ini, pemain dapat bergerak ke kiri dan ke kanan menggunakan tombol panah, sedangkan rintangan ditempatkan pada sumbu y yang sama.

instagram viewer
impor arcade

# Atur dimensi jendela
SCREEN_WIDTH = 800
LAYAR_TINGGI = 600

kelasMyGame(arcade. Jendela):
def__init__(diri, lebar, tinggi):
super().__init__(lebar, tinggi)
self.player_x = lebar // 3
self.score = 0

defon_key_press(mandiri, kunci, pengubah):
jika kunci == arcade.kunci. KIRI:
self.player_x -= 10
elif kunci == arcade.kunci. BENAR:
self.player_x += 10

defmemperbarui(mandiri, waktu_delta):
# Perbarui logika permainan di sini
lulus

defon_draw(diri sendiri):
arcade.start_render()
arcade.draw_circle_filled (self.player_x, 50, 20, arcade.color. BIRU)
arcade.draw_rectangle_filled(400, 50, 100, 50, arcade.color. MERAH)

defutama():
game = Permainan Saya (SCREEN_WIDTH, SCREEN_HEIGHT)
arcade.lari()

jika __nama__ == "__utama__":
utama()

Pelacakan dan Perhitungan Skor

Untuk melacak skor dalam game Anda, Anda dapat membuat mekanisme untuk meningkatkan skor setiap kali kondisi tertentu terpenuhi. Misalnya, skor meningkat setiap kali pemain bergerak dalam gim Anda dan berhasil menyentuh rintangan. Anda dapat mengubah memperbarui metode untuk memasukkan logika perhitungan skor:

kelasMyGame(arcade. Jendela):
def__init__(diri, lebar, tinggi):
super().__init__(lebar, tinggi)
self.player_x = lebar // 3
self.score = 0

defon_key_press(mandiri, kunci, pengubah):
jika kunci == arcade.kunci. KIRI:
self.player_x -= 10
elif kunci == arcade.kunci. BENAR:
self.player_x += 10

defmemperbarui(mandiri, waktu_delta):
jika self.player_x > 330Dan self.player_x < 470:
self.score += 1

Menampilkan Skor

Untuk menampilkan skor kepada pemain, ubah on_draw metode untuk menyertakan rendering teks:

kelasMyGame(arcade. Jendela):
# ...

defon_draw(diri sendiri):
arcade.start_render()
arcade.draw_circle_filled (self.player_x, 50, 20, arcade.color. BIRU)
arcade.draw_rectangle_filled(400, 300, 100, 50, arcade.color. MERAH)

skor_teks = f"Skor: {self.score}"
arcade.draw_text (teks_skor, 10, 10, arcade.color. PUTIH, 14)

Dengan menambahkan kode di atas, Anda dapat menampilkan skor di pojok kiri bawah jendela permainan.

Menyimpan Skor Tinggi

Untuk memberikan rasa pencapaian dan persaingan bagi pemain, penting untuk menyimpan dan menampilkan skor tinggi. Anda dapat menggunakan pendekatan berbasis file sederhana untuk ini.

Menggunakan load_high_score metode untuk membaca skor tinggi dari file bernama skor_tinggi.txt dan mengembalikannya. Setelah itu, Anda dapat menyimpan skor tinggi baru ke file menggunakan simpan_skor_tinggi metode.

kelasMyGame(arcade. Jendela):
def__init__(diri, lebar, tinggi):
super().__init__(lebar, tinggi)
self.player_x = lebar // 3
self.score = 0
self.high_score = self.load_high_score()

defload_high_score(diri sendiri):
mencoba:
dengan membuka("skor_tinggi.txt", "R") sebagai mengajukan:
kembali int (file.baca())
kecuali FileNotFoundError:
kembali0

defsimpan_skor_tinggi(diri sendiri):
dengan membuka("skor_tinggi.txt", "w") sebagai mengajukan:
file.write (str (self.high_score))

defmemperbarui(mandiri, waktu_delta):
# ...

jika self.score > self.high_score:
self.high_score = self.score
self.save_high_score()

Menampilkan Skor Tinggi

Mirip dengan menampilkan skor saat ini, Anda dapat menambahkan rendering teks untuk menampilkan skor tertinggi:

kelasMyGame(arcade. Jendela):
# ...

defon_draw(diri sendiri):
# ...

teks_skor_tinggi = f"Skor Tinggi: {self.high_score}"
arcade.draw_text (teks_skor_tinggi, 10, 30, arcade.color. PUTIH, 14)

Dengan memasukkan kode di atas dalam file on_draw metode, Anda dapat menampilkan skor tinggi tepat di atas skor saat ini.

Termasuk Fitur Tambahan

Mengelola skor dalam game sering melibatkan penggabungan fitur tambahan untuk membuat gameplay lebih menarik dan dinamis. Mari jelajahi beberapa contoh bagaimana Anda dapat memperkenalkan fitur tambahan di samping manajemen skor dalam game Anda.

Kekuatan bertambah

Power-up adalah item khusus yang memberi pemain keuntungan sementara atau poin bonus. Buat sebuah aktifkan_power_up metode yang memicu aktivasi power-up, pengaturan power_up_aktif tandai ke Benar.

Anda dapat menjadwalkan nonaktifkan_power_up metode untuk dijalankan setelah durasi tertentu (mis., 10 detik) menggunakan arcade.jadwal fungsi. Selama masa aktif penyalaan, Anda dapat menggunakan terapkan_daya_up_efek metode untuk menerapkan peningkatan gameplay tertentu.

Berikut adalah contoh penerapan fitur power-up di game Anda.

kelasMyGame(arcade. Jendela):
def__init__(diri, lebar, tinggi):
super().__init__(lebar, tinggi)
self.player_x = lebar // 3
self.score = 0
self.power_up_aktif = PALSU

defmemperbarui(mandiri, waktu_delta):
jika self.power_up_aktif:
# Terapkan efek power-up selama bermain game
self.apply_power_up_efek()
self.score += 10

defterapkan_daya_up_efek(diri sendiri):
# Tambahkan logika khusus power-up di sini
lulus

defaktifkan_power_up(diri sendiri):
self.power_up_aktif = BENAR
# Atur timer atau durasi untuk efek power-up
arcade.jadwal (self.deactivate_power_up, 10.0)

defnonaktifkan_power_up(mandiri, waktu_delta):
self.power_up_aktif = PALSU

Sistem Kombo

Sistem kombo memberi penghargaan kepada pemain untuk mencapai tindakan sukses berturut-turut atau pengganda skor. Buat sebuah penambah_kombo_konter metode yang menambah penghitung kombo dan meningkatkan skor berdasarkan level kombo saat ini.

Anda dapat menghubungi reset_combo_counter metode dan setel ulang penghitung kombo kembali ke nol setiap kali tindakan yang gagal terjadi. Berikut implementasi sederhana dari sistem kombo:

kelasMyGame(arcade. Jendela):
def__init__(diri, lebar, tinggi):
super().__init__(lebar, tinggi)
self.player_x = lebar // 3
self.score = 0
self.combo_counter = 0

defmemperbarui(mandiri, waktu_delta):
# Periksa tindakan yang berhasil
jika self.check_successful_action():
self.increase_combo_counter()
kalau tidak:
self.reset_combo_counter()

defpenambah_kombo_konter(diri sendiri):
self.combo_counter += 1
self.score += self.combo_counter

defreset_combo_counter(diri sendiri):
self.combo_counter = 0

Dengan memasukkan fitur tambahan seperti power-up dan sistem kombo, Anda dapat menambahkan kedalaman dan keseruan pada game Anda, memberi pemain insentif ekstra untuk meningkatkan kinerja mereka, menyusun strategi tindakan mereka, dan mencapai yang lebih tinggi skor.

Praktik Terbaik untuk Manajemen Skor

Dalam hal mengelola skor dalam game, mengikuti praktik terbaik dapat membantu menciptakan pengalaman yang lebih menyenangkan dan menarik bagi pemain. Berikut adalah beberapa praktik utama untuk dipertimbangkan:

Mekanisme Penilaian yang Bermakna

Rancang mekanisme penilaian yang selaras dengan tujuan permainan dan berikan umpan balik yang berarti bagi pemain. Sistem penilaian harus mencerminkan kemajuan, keterampilan, dan pencapaian pemain dalam permainan.

Pertimbangkan untuk menetapkan nilai poin yang berbeda untuk tindakan atau peristiwa yang berbeda berdasarkan kesulitan atau kepentingannya terhadap gameplay.

Umpan Balik Visual

Berikan umpan balik visual kepada pemain saat skor berubah. Anda dapat mencapainya melalui notifikasi di layar, animasi, atau efek partikel. Isyarat visual menciptakan rasa pencapaian dan memperkuat tindakan pemain, meningkatkan keterlibatan mereka dengan game.

Efek Suara dan Animasi

Menggabungkan efek suara dalam gim Anda terkait dengan pembaruan skor untuk menjadikan pengalaman lebih imersif. Misalnya, mainkan efek suara perayaan atau tampilkan semburan confetti saat pemain mencapai pencapaian yang signifikan. Elemen audio-visual ini menambah kegembiraan dan memperkuat putaran umpan balik positif bagi para pemain.

Menyeimbangkan Kesulitan dan Skala Skor

Pastikan hubungan yang seimbang antara kesulitan dan penskalaan skor. Saat pemain maju melalui permainan atau menghadapi rintangan yang lebih menantang, sesuaikan sistem penilaian yang sesuai. Menskalakan skor berdasarkan kurva kesulitan game membantu mempertahankan pengalaman yang adil dan bermanfaat bagi para pemain.

Dengan mengikuti praktik terbaik ini, Anda dapat mengelola skor game Anda secara efektif, memberikan umpan balik yang bermakna kepada pemain, dan menciptakan pengalaman yang bermanfaat dan menarik.

Tingkatkan Keterlibatan Game dengan Pelacakan Skor

Dengan menerapkan pelacakan skor dalam game, Anda dapat meningkatkan keterlibatan pemain secara signifikan. Skor memberikan rasa pencapaian, mendorong replayability, dan mendorong kompetisi antar pemain.

Tampilkan skor secara mencolok dan berikan penghargaan untuk pencapaian tinggi—Anda akan memotivasi pemain untuk berjuang demi performa yang lebih baik dan meningkatkan keterampilan mereka.