Sebagian besar game platform menggunakan beberapa jenis lompatan, dengan variasi termasuk lompatan ganda dan lompatan ketinggian variabel. Temukan teknik di balik gerakan ini.

Mekanika lompat memainkan peran penting dalam meningkatkan pengalaman bermain game platformer. Dengan menerapkan berbagai mekanisme melompat dengan Python's Arcade Library, Anda dapat menambah kedalaman dan keseruan pada gim Anda.

Pustaka Arcade menyediakan kerangka kerja yang intuitif dan mudah digunakan untuk membuat game, menjadikannya pilihan ideal untuk membuat platformer Anda.

Buat Game Sederhana

Sebelum memulai, instal pip di perangkat Anda dan gunakan perintah ini untuk menginstal arcade modul:

pip menginstal arcade

Untuk menjelajahi cara kerja mekanisme lompat, mulailah dengan membuat game sederhana di mana pemain dapat bergerak ke kiri dan ke kanan dengan gravitasi dan platform statis.

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

Di dalam game, pemain akan bertabrakan dengan platform dan berdiri di atasnya. Buat file baru bernama

instagram viewer
simple-game.py dan tambahkan kode di bawah ini:

impor arcade

SCREEN_WIDTH = 800
LAYAR_TINGGI = 600
PEMAIN_RADIUS = 20
PLATFORM_WIDTH = 200
PLATFORM_HEIGHT = 20
GRAVITASI = 0.5
biru = arcade.color. BIRU
hijau = arcade.color. HIJAU

kelasGameWindow(arcade. Jendela):
def__init__(diri sendiri):
super().__init__(SCREEN_WIDTH, SCREEN_HEIGHT, "Mekanik Melompat")
self.player_x = SCREEN_WIDTH // 2
self.player_y = SCREEN_HEIGHT // 2
self.player_dy = 0
self.platform_x = SCREEN_WIDTH // 2
self.platform_y = SCREEN_HEIGHT // 4

defon_draw(diri sendiri):
arcade.start_render()

arcade.draw_circle_filled (self.player_x, self.player_y,
PLAYER_RADIUS, biru)

arcade.draw_rectangle_filled (self.platform_x, self.platform_y,
PLATFORM_WIDTH, PLATFORM_HEIGHT, hijau)

defon_update(mandiri, waktu_delta):
self.player_dy -= GRAVITASI
self.player_y += self.player_dy
dist = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2

jika self.player_y < dist:
self.player_y = dist
self.player_dy = 0

permainan = GameWindow()
arcade.lari()

Saat Anda menjalankan program, Anda akan melihat objek pemain dengan cepat jatuh ke platform, lalu tetap berada di atasnya.

Menambahkan Fitur Lompat Sederhana

Sekarang, tambahkan fitur lompat sederhana ke dalam game. Periksa tabrakan antara pemain dan platform dan memicu aksi melompat saat pemain menekan tombol panah atas. Untuk mencapai ini, buat file baru bernama jump.py dan kode dengan pembaruan di bawah ini:

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

defon_key_press(mandiri, kunci, pengubah):
on_ground = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2

jika kunci == arcade.kunci. KE ATAS Dan self.player_y == di_ground:
self.player_dy = 10

defon_update(mandiri, waktu_delta):
self.player_dy -= GRAVITASI
self.player_y += self.player_dy
dist = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2

jika self.player_y < dist:
self.player_y = dist
self.player_dy = 0
self.jump_count = 0

Menambahkan Fitur Lompat Ganda

Untuk menambahkan fitur lompat ganda, perluas logika lompat yang ada. Saat pemain berada di platform dan menekan tombol panah atas untuk pertama kalinya, mereka akan melakukan lompatan biasa. Namun, jika mereka menekan tombol panah atas lagi saat berada di udara, pemain akan melakukan lompatan ganda.

Buat file baru bernama double-jump.py dan kode dengan pembaruan di bawah ini:

kelasGameWindow(arcade. Jendela):
def__init__(diri sendiri):
self.jump_count = 0# Lacak jumlah lompatan

defon_key_press(mandiri, kunci, pengubah):
on_ground = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2

jika kunci == arcade.kunci. KE ATAS:
jika self.player_y == di_tanah atau self.jump_count < 2:
self.player_dy = 10
self.jump_count += 1

Termasuk Fitur Tambahan

Selain lompatan sederhana dan ganda, ada banyak fitur yang dapat Anda tambahkan untuk meningkatkan mekanisme lompatan gim Anda.

Menerapkan Tinggi Lompatan Variabel

Mengizinkan pemain untuk mengontrol ketinggian lompatan mereka berdasarkan berapa lama mereka menahan tombol lompat dapat menambahkan lebih banyak kontrol dan strategi ke gameplay. Berikut adalah contoh bagaimana Anda dapat menerapkan tinggi lompatan variabel. Buat file baru bernama variabel-jump.py dan kode dengan pembaruan di bawah ini:

GRAVITASI = 0.5
JUMP_POWER_INCREMENT = 0.2
MAX_JUMP_POWER = 100

kelasGameWindow(arcade. Jendela):
def__init__(diri sendiri):
super().__init__(SCREEN_WIDTH, SCREEN_HEIGHT, "Mekanik Melompat")
self.jump_press = PALSU
self.jump_power = 0

defon_key_press(mandiri, kunci, pengubah):
on_ground = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2

jika kunci == arcade.kunci. KE ATAS Dan self.player_y == di_ground:
self.jump_press = BENAR

defon_key_release(mandiri, kunci, pengubah):
jika kunci == arcade.kunci. KE ATAS:
self.jump_press = PALSU

defupdate_jump_power(diri sendiri):
# Tingkatkan kekuatan lompatan saat tombol lompat ditahan
jika self.jump_press:
self.jump_power += JUMP_POWER_INCREMENT

jika self.jump_power > MAX_JUMP_POWER:
self.jump_power = MAX_JUMP_POWER
kalau tidak:
jika self.jump_power > 0:
self.jump_power -= 1

defon_update(mandiri, waktu_delta):
self.player_dy -= GRAVITASI
dist = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2

jika self.player_y == dist Dan self.jump_power > 0:
self.player_dy = self.jump_power

self.player_y += self.player_dy
self.update_jump_power()

Mengimplementasikan Fitur Air Dash

Menambahkan mekanik dasbor udara dapat memberi pemain opsi mobilitas tambahan saat berada di udara. Buat file baru bernama air-dash.py dan kode dengan pembaruan di bawah ini:

AIR_DASH_DISTANCE = 100
MAX_AIR_DASHES = 2

kelasGameWindow(arcade. Jendela):
def__init__(diri sendiri):
super().__init__(SCREEN_WIDTH, SCREEN_HEIGHT, "Mekanik Melompat")
self.on_ground = PALSU
self.air_dash = 0
self.can_air_dash = BENAR

defon_key_press(mandiri, kunci, pengubah):
jika kunci == arcade.kunci. KE ATAS Dan mandiri.on_ground:
self.player_dy = 10
elif kunci == arcade.kunci. KE ATAS Dan \
self.air_dash < MAX_AIR_DASHES Dan \
self.can_air_dash:
self.player_dx = AIR_DASH_DISTANCE
self.air_dash += 1
self.can_air_dash = PALSU

defon_update(mandiri, waktu_delta):
self.player_dy -= GRAVITASI
self.player_y += self.player_dy

dist = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2

jika self.player_y <= dist:
self.player_y = dist
self.player_dy = 0
self.on_ground = BENAR
kalau tidak:
self.on_ground = PALSU

self.player_x += self.player_dx

jika self.player_x self.player_x = PLAYER_RADIUS
self.player_dx = 0
elif self.player_x > SCREEN_WIDTH - PLAYER_RADIUS:
self.player_x = SCREEN_WIDTH - PLAYER_RADIUS
self.player_dx = 0

jika mandiri.on_ground:
self.air_dash = 0
self.can_air_dash = BENAR

Saat Anda melakukan lari udara, karakter pemain Anda akan menjauh dari platform:

Praktik Terbaik untuk Mekanik Lompat

Menerapkan mekanisme melompat dalam sebuah game membutuhkan pertimbangan yang cermat untuk memastikan pengalaman gameplay yang lancar dan menyenangkan. Berikut adalah beberapa praktik terbaik yang perlu diingat:

Seimbangkan Tinggi dan Durasi Lompatan

Untuk menjaga rasa realisme dan kesulitan permainan, penting untuk menyeimbangkan tinggi dan durasi lompatan. Lompatan yang terlalu tinggi atau terlalu pendek dapat berdampak negatif pada gameplay. Bereksperimenlah dengan ketinggian dan durasi lompatan yang berbeda untuk menemukan keseimbangan yang tepat untuk gim Anda.

Pertimbangkan fisika game, kemampuan karakter, dan desain level keseluruhan saat menentukan mekanisme lompatan yang sesuai.

Memberikan Umpan Balik Visual dan Audio

Umpan balik visual dan audio sangat penting untuk membuat lompatan terasa responsif dan memuaskan. Gunakan animasi atau efek partikel untuk menggambarkan gerakan melompat dan mendarat pemain.

Selain itu, pertimbangkan menambahkan efek suara atau musik latar yang meningkatkan pengalaman melompat. Isyarat visual dan audio ini berkontribusi pada pencelupan dan keterlibatan pemain.

Deteksi Benturan Sempurna

Deteksi tabrakan yang akurat antara pemain dan platform sangat penting untuk mekanisme lompatan yang akurat dan andal. Pastikan algoritme deteksi tabrakan kuat dan menangani berbagai skenario dengan benar, seperti mendarat di platform, bertabrakan dengan rintangan, atau meluncur di sepanjang dinding.

Uji dan ulangi kode deteksi tabrakan Anda untuk menghilangkan gangguan atau ketidakkonsistenan yang dapat memengaruhi mekanisme lompatan.

Jadikan Game Lebih Menyenangkan Dengan Mekanisme Melompat

Penambahan mekanik lompat dapat sangat meningkatkan keterlibatan dan kenikmatan permainan. Ini membuka kemungkinan baru untuk desain level, teka-teki, dan rintangan yang menantang. Dengan menerapkan mekanisme lompatan yang berbeda di Python's Arcade Game Library, Anda dapat membuat game platformer menawan yang membuat pemain terhibur selama berjam-jam.

Ingat, bereksperimen dengan mekanisme lompat yang berbeda dan menggabungkan fitur unik dapat membedakan game Anda dan menjadikannya pengalaman yang imersif dan berkesan bagi para pemain.