Pustaka game Python ini penuh dengan fitur, termasuk beberapa alat sederhana yang dapat Anda gunakan untuk membuat pengguliran paralaks yang mulus.

Menggulir latar belakang dapat sangat meningkatkan daya tarik visual dan kedalaman permainan. Mereka dapat menciptakan ilusi gerakan, memberikan permainan perasaan yang dinamis dan imersif. Anda dapat menerapkan latar belakang bergulir hanya dalam beberapa langkah sederhana menggunakan Pygame.

Pygame adalah pustaka Python populer yang dapat Anda gunakan untuk mengembangkan game. Menambahkan latar belakang bergulir ke proyek Pygame Anda akan menghidupkannya dan memberikan pengalaman yang lebih menarik bagi pemain.

Buat Game Sederhana

Untuk memahami konsep menggulir latar belakang di Pygame, mulailah dengan membuat game sederhana di mana pemain dapat bergerak ke kiri dan ke kanan. Anda juga dapat menyertakan dua platform, yang diwakili oleh persegi panjang, untuk dijadikan sebagai lingkungan game. Buat file baru bernama simple-game.py.

Kode yang digunakan dalam artikel ini tersedia di sini

instagram viewer
repositori GitHub dan gratis untuk Anda gunakan di bawah lisensi MIT.

Pertama, impor modul pygame dan inisialisasi. Kemudian tentukan posisi awal dan kecepatan gerakan pemain. Buat platform menggunakan pygame. Rec objek dan menentukan posisi dan dimensinya.

Di dalam loop game, tangani kejadian seperti keluar dari game. Anda juga bisa menangani gerakan pemain berdasarkan input sentuhan atau keyboard.

Inilah output dari game sederhana:

Buat Lapisan Berbeda

Untuk mencapai efek bergulir, Anda dapat membuat banyak lapisan latar belakang dengan warna berbeda. Setiap lapisan akan bergerak dengan kecepatan berbeda, menciptakan efek paralaks. Efek ini memberikan ilusi kedalaman dan meningkatkan rasa pergerakan dalam game.

Tentukan dua layer latar belakang, masing-masing menutupi seluruh jendela game, menggunakan pygame. Objek persegi panjang. Juga tentukan warna setiap lapisan di background_colors daftar. Itu background_speeds daftar menentukan kecepatan di mana setiap lapisan akan bergerak.

# Tambahkan kode ini di bawah bagian sebelumnya

background_layers = [
pygame. Persegi panjang(0, 0, lebar_layar, tinggi_layar),
pygame. Persegi panjang(0, 0, lebar_layar, tinggi_layar)
]

background_colors = [(30, 30, 30), (60, 60, 60)]
kecepatan_latar belakang = [0.1, 1.0]

Untuk membuat efek latar belakang bergulir, Anda perlu memperbarui posisi lapisan latar belakang dalam lingkaran permainan. Anda akan memindahkan setiap lapisan secara horizontal berdasarkan kecepatan yang ditetapkan.

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

untuk Saya di dalam rentang (len (background_layers)):
background_layers[i].x -= background_speeds[i]

jika background_layers[i].x <= -lebar_layar:
background_layers[i].x = 0

pygame.draw.rect (layar, background_colors[i], background_layers[i])

Iterasi melalui setiap lapisan latar belakang. Kurangi kecepatan yang sesuai dari koordinat x lapisan, menyebabkannya bergerak ke kiri. Jika sebuah lapisan mencapai tepi kiri layar, setel ulang posisinya ke kanan, menciptakan efek pengguliran terus menerus.

Akhirnya, menggambar setiap lapisan latar belakang persegi panjang di layar menggunakan pygame.draw.rect() dan meneruskan warna dan pygame yang sesuai. Objek persegi panjang.

Menambahkan Efek Paralaks Saat Bergerak

Untuk meningkatkan efek paralaks, Anda dapat memodifikasi gerakan platform agar terjadi saat pemain bergerak. Ini akan menciptakan rasa kedalaman dan gerakan dinamis yang kuat. Buat file baru bernama paralaks.py dan tambahkan kode dengan pembaruan di bawah ini:

# Tentukan posisi dan kecepatan platform
rect1 = pygame. Persegi panjang(50, tinggi_layar - 100, 200, 10)
rect2 = pygame. Rect (lebar_layar - 250, tinggi_layar - 200, 200, 10)

platform = [
{"tepat": lurus1, "kecepatan": 3},
{"tepat": lurus2, "kecepatan": 1}
]

# Tambahkan kode ini di dalam loop game

# Gerakan pemain
kunci = pygame.key.get_pressed()

jika kunci[pygame. K_LEFT] Dan pemain_x > 0:
player_x -= kecepatan_pemain

untuk platform di dalam platform:
platform["tepat"].x -= platform["kecepatan"]

jika kunci[pygame. K_KANAN] Dan player_x < lebar_layar:
player_x += kecepatan_pemain

untuk platform di dalam platform:
platform["tepat"].x += platform["kecepatan"]

untuk platform di dalam platform:
pygame.draw.rect (layar, (0, 255, 0), platform["tepat"])

Mewakili platform sebagai kamus yang berisi objek persegi panjang (persegi) dan kecepatan di mana platform harus bergerak (kecepatan). Platform diperbarui dalam lingkaran permainan berdasarkan pergerakan pemain.

Dengan mengimplementasikan modifikasi ini, efek scrolling hanya akan aktif saat pemain aktif bergerak, semakin menyempurnakan ilusi kedalaman dan gerak.

Termasuk Fitur Tambahan

Anda dapat menerapkan beberapa fitur tambahan untuk menyempurnakan latar belakang pengguliran di game Anda. Berikut beberapa contohnya.

Acak Warna Latar Belakang

Untuk menambahkan variasi pada layer latar belakang, Anda dapat mengacak warnanya. Anda dapat melakukan ini dengan memodifikasi background_colors daftar:

impor acak

# Tambahkan kode ini sebelum putaran permainan

background_colors = [
(acak.randint(0, 255), acak.randint(0, 255), acak.randint(0, 255)),
(acak.randint(0, 255), acak.randint(0, 255), acak.randint(0, 255)),
(acak.randint(0, 255), acak.randint(0, 255), acak.randint(0, 255))
]

Tambahkan Lebih Banyak Lapisan Latar Belakang

Anda dapat bereksperimen dengan menambahkan lebih banyak lapisan latar belakang untuk menciptakan efek paralaks yang lebih kaya. Cukup tentukan tambahan pygame. Rec objek, warna, dan kecepatan:

# Tambahkan kode ini sebelum putaran permainan

background_layers = [
pygame. Persegi panjang(0, 0, lebar_layar, tinggi_layar),
pygame. Persegi panjang(0, 0, lebar_layar, tinggi_layar),
pygame. Persegi panjang(0, 0, lebar_layar, tinggi_layar),
pygame. Persegi panjang(0, 0, lebar_layar, tinggi_layar)
]

background_colors = [
(30, 30, 30),
(60, 60, 60),
(90, 90, 90),
(120, 120, 120)
]

kecepatan_latar belakang = [1, 2, 3, 4]

Gunakan Gambar untuk Latar Belakang

Alih-alih warna solid, Anda dapat menggunakan file gambar sebagai latar belakang. Pygame menyediakan fungsi untuk memuat dan merender gambar.

Muat file gambar background_0.png, background_1.png, Dan background_2.png menggunakan pygame.image.load(). Gunakan metode convert() untuk meningkatkan kinerja dan menskalakan gambar agar sesuai dengan dimensi layar pygame.transform.scale().

# Tambahkan kode ini sebelum putaran permainan

background_images = [
pygame.image.memuat("background_0.png").mengubah(),
pygame.image.memuat("background_1.png").mengubah(),
pygame.image.memuat("background_2.png").mengubah()
]

kecepatan_latar belakang = [1, 2, 3]

untuk Saya di dalam rentang (len (gambar_latar belakang)):
ukuran = (lebar_layar, tinggi_layar)
background_images[i] = pygame.transform.scale (background_images[i], ukuran)

Terakhir, perbarui loop tempat Anda menggambar layer latar belakang untuk menggunakan gambar:

# Perbarui kode ini di dalam loop game

untuk Saya di dalam rentang (len (background_layers)):
background_layers[i].x -= background_speeds[i]

jika background_layers[i].x <= -lebar_layar:
background_layers[i].x = 0

screen.blit (background_images[i], background_layers[i])

Berikut adalah beberapa praktik terbaik untuk dipertimbangkan saat menerapkan latar belakang bergulir di proyek Pygame Anda.

Mengoptimalkan Performa

Menggulir latar belakang melibatkan rendering dan pembaruan terus menerus. Untuk memastikan kelancaran permainan, pertimbangkan untuk mengoptimalkan kode Anda dan meminimalkan perhitungan yang tidak perlu.

Eksperimen Dengan Kecepatan Lapisan

Menyesuaikan kecepatan lapisan latar belakang dapat menciptakan efek yang berbeda. Bermain-main dengan nilai yang berbeda untuk menemukan keseimbangan yang tepat dan mencapai dampak visual yang diinginkan.

Tes pada Ukuran Layar Berbeda

Pastikan latar belakang pengguliran Anda berfungsi dengan baik pada berbagai resolusi layar. Pertimbangkan untuk menerapkan penskalaan dinamis atau menggunakan gambar latar yang berbeda untuk rasio aspek yang berbeda.

Gunakan Format Gambar yang Sesuai

Jika Anda memutuskan untuk menggunakan gambar sebagai latar belakang, pilih format gambar yang sesuai (mis. PNG, JPEG) untuk menyeimbangkan ukuran file dan kualitas gambar. Anda juga dapat mengurangi waktu pemuatan dengan mengompresi dan mengoptimalkan gambar Anda.

Pertimbangkan Penggunaan Memori

Jika Anda berencana menggunakan banyak gambar beresolusi tinggi untuk latar belakang, perhatikan kebutuhan memori. Gambar besar dapat menghabiskan banyak memori, berpotensi memengaruhi performa dan daya tanggap game Anda.

Dengan menggabungkan latar belakang bergulir, Anda dapat membuat lingkungan yang berbeda, seperti lanskap bergerak, lanskap kota futuristik, atau dunia bawah laut. Efek paralaks menambahkan sentuhan dinamis, membuat dunia game terasa hidup dan interaktif.

Ingatlah untuk bereksperimen, iterasi, dan jelajahi kemungkinan kreatif dengan latar belakang bergulir untuk membuat game Anda lebih menyenangkan dan menawan bagi para pemain.