Oyununuzu daha ilgi çekici ve eğlenceli hale getirmek için seviyeleri nasıl ekleyebileceğiniz aşağıda açıklanmıştır.

Seviyeler, çoğu video oyununun önemli bir yönüdür. Yapı, meydan okuma ve çeşitlilik sağlarlar ve oyuncunun deneyimini önemli ölçüde artırabilirler. Oyun geliştirmeye yönelik popüler bir Python kitaplığı olan PyGame, çeşitli seviyeleri kolayca oluşturabileceğiniz çeşitli özellikler sunar. İyi tasarlanmış bir seviye, oyuncuyu cezbedebilir, bir ilerleme duygusu yaratabilir ve nihayetinde çabaları için onları ödüllendirebilir.

Planlama ve Tasarım Seviyeleri

Seviyeleri oluşturmadan önce, onları planlamak ve tasarlamak çok önemlidir. Planlama seviyeleri, oyunculara doğru zorluk seviyesini sağlayan iyi yapılandırılmış bir oyun yaratmaya yardımcı olur. Seviyeleri planlamak için oyunun mekaniği, hikayesi ve oyunun genel yapısı gibi çeşitli faktörleri göz önünde bulundurmanız gerekir.

Örneğin, bir platform oyunu tasarlıyorsanız, platformların yerleşimini, düşmanları ve engelleri düşünmeniz gerekir. Ayrıca oyuncunun zıplama, koşma gibi hareketlerini de göz önünde bulundurmanız ve seviyeleri buna göre tasarlamanız gerekiyor.

instagram viewer

Bu makalede kullanılan kod bu makalede mevcuttur. GitHub deposu ve MIT lisansı altında ücretsiz olarak kullanabilirsiniz.

İki Basit Düzey Oluşturma

Başlamadan önce, sahip olduğunuzdan emin olun. pip sisteminizde yüklü. yüklemek için bu komutu kullanın. pygame kütüphane:

pip kurulumu pygame

Şimdi, bir platform ve bir oyuncu ile iki basit seviye oluşturun. İşte ilk seviye için kod:

içe aktarmak pygame

pygame.init()

# Sabitleri tanımlayın
EKRAN_GENİŞLİK = 800
EKRAN_YÜKSEKLİK = 600
PLATFORM_WIDTH = 100
PLATFORM_HEIGHT = 20
OYUNCU_GENİŞLİK = 50
OYUNCU_BOY = 50
PLATFORM_COLOR = (255, 255, 255)
OYUNCU_RENK = (255, 0, 0)

# Ekranı oluştur
ekran = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))

# Platformu oluştur
platform = pygame. Doğru(350, 500, PLATFORM_WIDTH, PLATFORM_HEIGHT)

# Oynatıcıyı oluştur
oyuncu = pygame. Doğru(375, 450, PLAYER_WIDTH, PLAYER_HEIGHT)

# Oyun döngüsü
koşu = Doğru
sırasında koşma:
için etkinlik içinde pygame.event.get():
eğer event.type == pygame. ÇIKIŞ YAPMAK:
koşu = YANLIŞ
elif event.type == pygame. TUŞ AŞAĞI:
eğer event.key == pygame. K_LEFT:
oyuncu.move_ip(-10, 0)
elif event.key == pygame. K_RIGHT:
oyuncu.move_ip(10, 0)

# Ekranı siyah renkle doldurun
ekran.fill((0, 0, 0))

# Platformu çizin
pygame.draw.rect (ekran, PLATFORM_COLOR, platform)

# Oyuncuyu çiz
pygame.draw.rect (ekran, PLAYER_COLOR, oyuncu)

# Ekranı güncelle
pygame.display.flip()

pygame.quit()

Bundan sonra, sadece platformu ve oyuncunun konumunu değiştirerek ikinci seviyeyi oluşturun. İşte ikinci seviye için kod:

içe aktarmak pygame

pygame.init()

# Sabitleri tanımlayın
EKRAN_GENİŞLİK = 800
EKRAN_YÜKSEKLİK = 600
PLATFORM_WIDTH = 150
PLATFORM_HEIGHT = 20
OYUNCU_GENİŞLİK = 50
OYUNCU_BOY = 50
PLATFORM_COLOR = (255, 255, 255)
OYUNCU_RENK = (255, 0, 0)

# Ekranı oluştur
ekran = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))

# Platformu oluştur
platform = pygame. Doğru(200, 500, PLATFORM_WIDTH, PLATFORM_HEIGHT)

# Oynatıcıyı oluştur
oyuncu = pygame. Doğru(225, 450, PLAYER_WIDTH, PLAYER_HEIGHT)

# Oyun döngüsü
koşu = Doğru
sırasında koşma:
için etkinlik içinde pygame.event.get():
eğer event.type == pygame. ÇIKIŞ YAPMAK:
koşu = YANLIŞ
elif event.type == pygame. TUŞ AŞAĞI:
eğer event.key == pygame. K_LEFT:
oyuncu.move_ip(-10, 0)
elif event.key == pygame. K_RIGHT:
oyuncu.move_ip(10, 0)

# Ekranı siyah renkle doldurun
ekran.fill((0, 0, 0))

# Platformu çizin
pygame.draw.rect (ekran, PLATFORM_COLOR, platform)

# Oyuncuyu çiz
pygame.draw.rect (ekran, PLAYER_COLOR, oyuncu)

# Ekranı güncelle
pygame.display.flip()

pygame.quit()

Bu kod birinci seviyeye benzer, ancak platform ve oyuncunun pozisyonları değiştirilir.

Farklı Seviyeleri Bağlamak

Farklı seviyeleri birbirine bağlamak için, oyuncu bir seviyeyi tamamladığında seviyeler arasında geçiş yapmak için oyun döngüsünü değiştirmeniz gerekir. Bunu, mevcut seviyeyi takip etmek için bir değişken oluşturarak ve seviyeler arasında geçiş yapmak için koşullu ifadeler kullanarak yapabilirsiniz. ayrıca yapabilirsin kontrol etmek için çarpışmaları algıla oyuncu bir seviyenin sonuna ulaştıysa.

İşte değiştirilmiş oyun döngüsü:

akım_seviyesi = 1

# Platformu ve oynatıcıyı mevcut seviyeye göre çizin
eğer akım_seviyesi == 1:
pygame.draw.rect (ekran, PLATFORM_COLOR, platform1)
pygame.draw.rect (ekran, PLAYER_COLOR, oyuncu)
# Oyuncunun seviyenin sonuna ulaşıp ulaşmadığını kontrol edin
eğer player.colliderect (platform1) == YANLIŞ:
akım_seviyesi = 2
elif akım_seviyesi == 2:
pygame.draw.rect (ekran, PLATFORM_COLOR, platform2)
pygame.draw.rect (ekran, PLAYER_COLOR, oyuncu)
# Oyuncunun seviyenin sonuna ulaşıp ulaşmadığını kontrol edin
eğer player.colliderect (platform2) == Doğru:
koşu = YANLIŞ

Oyun Verilerini Seviyeler Arasında Paylaşma

Seviyeler arasında paylaşmak için oyun verilerini saklamanız gerekir. Bunun için oyun verilerini depolamak ve her seviyeye aktarmak için ayrı bir Python modülü oluşturun.

İşte adımlar:

  • adlı yeni bir Python modülü oluşturun. game_data.py.
  • Global bir değişken tanımlayın game_data.py oyuncunun konumunu saklamak için modül.
  • Her seviyede, Oyun verisi modül.
  • Oyuncunun her seviyedeki konumunu almak için, game_data.player_pos yeni bir oynatıcı nesnesi oluşturmak yerine değişken.
  • Oyuncunun konumunu güncellemek için değerini değiştirin game_data.player_pos her yinelemede.

İşte oyuncunun konumunu seviyeler arasında paylaşmak için değiştirilmiş kod.

İçinde game_data.py modülü, aşağıdaki kodu ekleyin:

player_pos = (0, 0)

İlk seviye:

içe aktarmak pygame
içe aktarmak Oyun verisi

# Oynatıcıyı oluştur
oyuncu = pygame. Rect (game_data.player_pos[0], game_data.player_pos[1], PLAYER_WIDTH, PLAYER_HEIGHT)

# Oyun döngüsü
koşu = Doğru
sırasında koşma:
# Oyuncuyu çiz
pygame.draw.rect (ekran, PLAYER_COLOR, oyuncu)

# Game_data modülünde oyuncunun konumunu güncelleyin
game_data.player_pos = (player.x, player.y)

Seviyelerle Oyunları Daha İlgi Çekici Hale Getirin

Oyununuza farklı seviyeler eklemek, onu oyuncular için daha ilgi çekici ve eğlenceli hale getirebilir. Seviyeleri birbirine bağlayarak ve oyun verilerini paylaşarak sorunsuz ve uyumlu bir oyun deneyimi oluşturabilirsiniz. Bu, oyuncuların oyun dünyasının içinde kalmasına yardımcı olabilir ve ayrılma veya can sıkıntısı olasılığını azaltabilir.