Hafta 1: Kendi Oyun Dünyamızın Mimarı Oluyoruz!


Merhaba genç oyun geliştiricileri!

Bu hafta inanılmaz bir şey başardık: bomboş bir siyah ekrandan, kendi kontrol ettiğimiz bir karakterin ve yakalama görevlerinin olduğu canlı bir dünyaya geçiş yaptık! Sadece birkaç sihirli komutla bilgisayara ne yapması gerektiğini öğrettik. Artık sizler birer oyun mimarısınız.

Gelin, bu hafta hangi adımları izleyerek ilk oyun mekaniğimizi yazdığımızı tekrar hatırlayalım.

Adım 1: Sahneyi Hazırlamak ve Oyuncuyu Çağırmak

Her şeyden önce oyun dünyamızın sınırlarını çizdik. Tıpkı bir ressamın tuvalinin boyutlarını belirlemesi gibi, biz de WIDTH (Genişlik) ve HEIGHT (Yükseklik) komutlarıyla sahnemizi hazırladık.

Sonra en heyecanlı kısım geldi: Aktörümüzü (Actor) sahneye davet etmek! Actor, içinde bir resim taşıyan ve sahnede istediğimiz yere koyabildiğimiz bir oyun nesnesidir. Ona bir adres (pos) vererek oyun dünyasının neresinde duracağını söyledik. Unutmayın, bilgisayar için adresler (x, y) sayılarından oluşur ve (0, 0) adresi her zaman ekranın sol üst köşesidir!

# Oyun dünyamızın boyutları
WIDTH = 800
HEIGHT = 600

# 'alien' resmini kullanarak bir karakter oluşturduk
# ve onu ekranın tam ortasına yerleştirdik.
karakter = Actor('alien')
karakter.pos = (400, 300) 

Adım 2: Karakterimize Hayat Vermek

Karakterimiz sahnede harika görünüyordu ama bir heykel gibiydi. Onu canlandırmak için oyunumuzun kalbini, yani update() fonksiyonunu yazdık. Bu fonksiyon saniyede 60 kez çalışır ve sürekli olarak “Yeni bir komut var mı?” diye kontrol eder.

Klavyedeki ok tuşlarına bastığımızda ne olacağını keyboard nesnesi sayesinde bilgisayara öğrettik. if keyboard.right: dediğimizde, aslında bilgisayara “Eğer sağ ok tuşuna basılıyorsa, karakterin X adresini biraz artır.” komutunu verdik. Böylece karakterimiz sağa doğru hareket etti!

# update() fonksiyonu oyunun beyni gibidir.
def update():
    # Klavye komutlarını dinleriz
    if keyboard.right:
        karakter.x += 5 # Sağa git
    if keyboard.left:
        karakter.x -= 5 # Sola git
    if keyboard.up:
        karakter.y -= 5 # Yukarı git
    if keyboard.down:
        karakter.y += 5 # Aşağı git

Adım 3: Dünyanın Sınırlarını Korumak

Karakterimiz hareketlenince bir sorun fark ettik: Ekranın dışına çıkıp kaybolabiliyordu! Çözüm olarak oyun dünyamızın kenarlarına görünmez duvarlar ördük. if (Eğer) komutunu kullanarak bilgisayara kurallar koyduk:

“Eğer karakterin sağ kenarı, ekranın genişliğini geçerse, onu daha fazla ilerletme!”

Bu sayede kahramanımız artık her zaman oyun alanının içinde kalıyor.

Adım 4: İlk Görev: Elmayı Yakala!

Sahnede tek başına dolaşan bir karakter yeterince eğlenceli değildi. Biz de ona bir görev verdik: elmayı yakalamak!

Bunun için sahneye elma adında ikinci bir aktör ekledik. Sonra en önemli sihirli kelimelerden birini öğrendik: colliderect. Bu komut, iki aktörün birbirine dokunup dokunmadığını kontrol eden bir çarpışma dedektifidir.

Artık kodumuz şunları yapabiliyordu:

  1. Bir skor değişkeni ile puanımızı aklında tutuyor.
  2. Karakter elmaya her dokunduğunda (colliderect), skoru 1 artırıyor.
  3. random (rastgele) komutuyla elmayı ekranın bambaşka bir noktasına ışınlıyor.

Haftanın Final Kodu: Hepsi Bir Arada!

İşte bu hafta yazdığımız ve tüm bu adımları birleştiren kodumuzun son hali. Bu kodu çalıştırdığınızda hareket eden, elma toplayan ve puan kazandıran ilk mini oyununuzu oynamış olacaksınız!

import random # Rastgelelik için bu sihirli kitabı çağırıyoruz

# --- AYARLAR ---
WIDTH = 800
HEIGHT = 600
skor = 0

# --- AKTÖRLER ---
karakter = Actor('alien', (400, 300))
elma = Actor('apple', (100, 100))

# --- ÇİZİM FONKSİYONU (Her saniye ekrana ne çizileceğini söyler) ---
def draw():
    screen.clear() # Önce ekranı temizle
    karakter.draw() # Karakteri çiz
    elma.draw() # Elmayı çiz
    # Skoru ekrana beyaz renkte yazdır
    screen.draw.text(f"Skor: {skor}", (10, 10), color="white", fontsize=30)

# --- GÜNCELLEME FONKSİYONU (Oyunun kalbi, tüm mantık burada döner) ---
def update():
    global skor # Dışarıdaki 'skor' değişkenini değiştireceğimizi söylüyoruz

    # 1. Karakteri hareket ettir
    if keyboard.right: karakter.x += 5
    if keyboard.left: karakter.x -= 5
    if keyboard.up: karakter.y -= 5
    if keyboard.down: karakter.y += 5

    # 2. Duvar kontrollerini ekleyebilirsin (Bonus!)

    # 3. Çarpışma var mı diye kontrol et
    if karakter.colliderect(elma):
        skor += 1 # Puanı artır
        # Elmayı rastgele yeni bir konuma gönder
        elma.x = random.randint(50, WIDTH - 50)
        elma.y = random.randint(50, HEIGHT - 50)

Tebrikler! Harika bir iş çıkardınız. Artık boş bir dosyayı, çalışan bir oyun mekaniğine dönüştürmenin temel adımlarını biliyorsunuz.

Şimdi Sıra Sende: Deneyebileceğin Fikirler

  • Oyunu zorlaştırmak için karakterin hızını (+= 5 olan yerleri) düşürmeyi dene.
  • images klasörüne kendi çizdiğin bir resmi atıp 'alien' yerine onun adını yazarak karakterini değiştirebilirsin.
  • Elmayı yakaladıkça karakterin hızlanmasını sağlayabilir misin?

Unutmayın, kodlama bir keşif yolculuğudur. Haftaya bu oyunun üzerine yeni ve çok daha heyecanlı özellikler ekleyeceğiz

“Hafta 1: Kendi Oyun Dünyamızın Mimarı Oluyoruz!” üzerine bir yorum

Yorum yapın