Mustafa Aferin
Özgün ve farklı içerikler üreten python, linux ve teknoloji haberleri okumayı seven birisi

Python İle Uzay Savaş Oyunu Nasıl Yapılır?

 Python ile Uzay Savaşı Oyunu: Adım Adım Rehber

Python, programlama dünyasında basit ve güçlü yapısıyla bilinir. Ancak, Python sadece web geliştirme veya veri bilimi için değil, aynı zamanda oyun geliştirme için de mükemmel bir araçtır. Bu rehberde, Python kullanarak bir “Uzay Savaşı” oyunu yapacağız.

Python ile Oyun Geliştirme Neden Tercih Edilmeli?

Kolay Öğrenim Eğrisi: Python, yeni başlayanlar için anlaşılır bir dil yapısına sahiptir.

Kütüphane Desteği: Pygame gibi oyun geliştirme kütüphaneleri, sıfırdan başlamak yerine hızlı ilerlemenizi sağlar.

Topluluk Desteği: Python’un geniş bir geliştirici topluluğu, karşılaştığınız sorunlara çözüm bulmanızı kolaylaştırır.

Gelişmiş Bir Oyun: Uzay Savaşı

Bu rehberde geliştireceğimiz oyun, temel bir uzay savaşı oyunu olacak. Oyuncu bir uzay gemisini kontrol ederek düşman gemileri yok etmeye çalışacak. Oyunumuz, grafikler, ses efektleri ve bir puan sistemi içerecek.

Uzay Savaşı Oyunu İçin Gerekenler

1. Python ve Pygame Kurulumu

Python ve Pygame’i yüklemek için şu adımları izleyin:

•Python’u Python.org üzerinden indirin.

•Pygame’i şu komutla kurun:

 

pip install pygame

 

2. Kod Yapısına Genel Bakış

Oyunumuz aşağıdaki bileşenleri içerecek:

•Uzay Gemisi: Oyuncunun kontrol ettiği ana karakter.

•Düşmanlar: Oyuncunun kaçınması ve yok etmesi gereken nesneler.

•Mermiler: Oyuncunun düşmanlara saldırmak için kullandığı silah.

•Puan Sistemi: Oyuncunun başarısını ölçmek için bir mekanizma.

Uzay Savaşı Oyunu Kodu

 

import pygame
import random

pygame.init()

# Ekran ayarları
WIDTH, HEIGHT = 800, 600
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("Uzay Savaşı")

# Renkler ve font
BLACK = (0, 0, 0)
WHITE = (255, 255, 255)
RED = (255, 0, 0)
font = pygame.font.Font(None, 36)

# Uzay gemisi
ship = pygame.image.load("ship.png")  # Sprite dosyasını indirip aynı dizine koyun
ship = pygame.transform.scale(ship, (50, 50))
ship_x, ship_y = WIDTH // 2, HEIGHT - 100

# Düşmanlar
enemy = pygame.image.load("enemy.png")
enemy = pygame.transform.scale(enemy, (50, 50))
enemies = [{"x": random.randint(0, WIDTH - 50), "y": random.randint(-100, -40)} for _ in range(5)]

# Mermi
bullets = []
bullet_speed = -10

# Puan
score = 0

# Ana oyun döngüsü
running = True
clock = pygame.time.Clock()
while running:
    screen.fill(BLACK)

    # Olaylar
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    # Tuş kontrolü
    keys = pygame.key.get_pressed()
    if keys[pygame.K_LEFT] and ship_x > 0:
        ship_x -= 5
    if keys[pygame.K_RIGHT] and ship_x < WIDTH - 50:
        ship_x += 5
    if keys[pygame.K_SPACE]:
        bullets.append({"x": ship_x + 25, "y": ship_y})

    # Mermileri hareket ettir
    for bullet in bullets[:]:
        bullet["y"] += bullet_speed
        if bullet["y"] < 0:
            bullets.remove(bullet)

    # Düşmanları hareket ettir
    for enemy_pos in enemies:
        enemy_pos["y"] += 3
        if enemy_pos["y"] > HEIGHT:
            enemy_pos["x"] = random.randint(0, WIDTH - 50)
            enemy_pos["y"] = random.randint(-100, -40)

    # Çarpışma kontrolü
    for bullet in bullets[:]:
        for enemy_pos in enemies[:]:
            if pygame.Rect(enemy_pos["x"], enemy_pos["y"], 50, 50).collidepoint(bullet["x"], bullet["y"]):
                bullets.remove(bullet)
                enemies.remove(enemy_pos)
                enemies.append({"x": random.randint(0, WIDTH - 50), "y": random.randint(-100, -40)})
                score += 1

    # Çizimler
    screen.blit(ship, (ship_x, ship_y))
    for enemy_pos in enemies:
        screen.blit(enemy, (enemy_pos["x"], enemy_pos["y"]))
    for bullet in bullets:
        pygame.draw.rect(screen, RED, (bullet["x"], bullet["y"], 5, 10))

    # Puan gösterimi
    score_text = font.render(f"Score: {score}", True, WHITE)
    screen.blit(score_text, (10, 10))

    pygame.display.flip()
    clock.tick(60)

pygame.quit()

 

İleri Özellikler

•Seviye Sistemi: Düşman sayısını ve hızını artırarak oyun ilerlemesini sağlayabilirsiniz.

•Ses Efektleri: Pygame’in ses modülü ile ateş etme ve çarpışma sesleri ekleyin.

•Kaydedilen Skorlar: Oyuncuların en yüksek skorlarını bir dosyada saklayabilirsiniz.

Kaynaklar

Python Resmi Belgeleri

Pygame Belgeleri

Python Random Modülü

Python ile oyun geliştirme sürecine bu yazıdaki adımlarla başlayabilir, kendi oyunlarınızı kolayca tasarlayabilirsiniz.

Cevap bırakın

E-posta hesabınız yayımlanmayacak.