Farih.co.id
Home Programming Cara Menerapkan Latar Belakang Bergulir di Pygame

Cara Menerapkan Latar Belakang Bergulir di Pygame

scrolling bg in game

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 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.Rect objek dan menentukan posisi dan dimensinya.

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

Inilah output dari game sederhana:

menggulir permainan sederhana dengan pemain dan objek platform

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 objek pygame.Rect. Juga tentukan warna setiap lapisan di background_colors daftar. Itu background_speeds daftar menentukan kecepatan di mana setiap lapisan akan bergerak.

 

background_layers = [
    pygame.Rect(0, 0, screen_width, screen_height),
    pygame.Rect(0, 0, screen_width, screen_height)
]

background_colors = [(30, 30, 30), (60, 60, 60)]
background_speeds = [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:

 for i in range(len(background_layers)):
    background_layers[i].x -= background_speeds[i]

    if background_layers[i].x <= -screen_width:
        background_layers[i].x = 0

    pygame.draw.rect(screen, 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.

Terakhir, gambarkan setiap layer latar belakang persegi panjang di layar menggunakan pygame.draw.rect() dan meneruskan warna dan objek pygame.Rect yang sesuai.

game dengan pemain, platform, dan bergulir bg

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:

 
rect1 = pygame.Rect(50, screen_height - 100, 200, 10)
rect2 = pygame.Rect(screen_width - 250, screen_height - 200, 200, 10)

platforms = [
    {"rect": rect1, "speed": 3},
    {"rect": rect2, "speed": 1}
]


keys = pygame.key.get_pressed()

if keys[pygame.K_LEFT] and player_x > 0:
    player_x -= player_speed

    for platform in platforms:
        platform["rect"].x -= platform["speed"]

if keys[pygame.K_RIGHT] and player_x < screen_width:
    player_x += player_speed

    for platform in platforms:
        platform["rect"].x += platform["speed"]

for platform in platforms:
    pygame.draw.rect(screen, (0, 255, 0), platform["rect"])

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:

 import random

background_colors = [
    (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)),
    (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)),
    (random.randint(0, 255), random.randint(0, 255), random.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.Rect objek, warna, dan kecepatan:

 

background_layers = [
    pygame.Rect(0, 0, screen_width, screen_height),
    pygame.Rect(0, 0, screen_width, screen_height),
    pygame.Rect(0, 0, screen_width, screen_height),
    pygame.Rect(0, 0, screen_width, screen_height)
]

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

background_speeds = [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.pngDan background_2.png menggunakan pygame.image.load(). Gunakan metode convert() untuk meningkatkan kinerja dan menskalakan gambar agar sesuai dengan dimensi layar pygame.transform.scale().

 

background_images = [
    pygame.image.load("background_0.png").convert(),
    pygame.image.load("background_1.png").convert(),
    pygame.image.load("background_2.png").convert()
]

background_speeds = [1, 2, 3]

for i in range(len(background_images)):
    size = (screen_width, screen_height)
    background_images[i] = pygame.transform.scale(background_images[i], size)

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

 

for i in range(len(background_layers)):
    background_layers[i].x -= background_speeds[i]

    if background_layers[i].x <= -screen_width:
        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 (misalnya 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.

Comment
Share:

Leave a Reply

Your email address will not be published. Required fields are marked *

Ad