Python, basit ve öğrenmesi kolay bir programlama dili olduğu için oyun geliştirmeye başlamak isteyenlerin gözdesidir. Bu makalede, “python oyun kodu” ve “python oyun yapımı” konularına ilgi duyanlar için adım adım bir yılan oyunu nasıl yapılır detaylı şekilde anlatılacaktır. Ayrıca, bu kodları herkesin nasıl kullanabileceği ve geliştirilebileceği üzerine bilgiler paylaşacağız.
İlginizi çekebilir 👉 Chatbotlar, İnsanları CIA’nin Bahçesindeki Şifreli Heykeli Çözdüklerine İnandırdı!
Yılan oyunu, ekranda hareket eden bir yılanın yemleri toplayarak büyümesini konu alır. Her yem yendiğinde yılan uzar ve oyun zorlaşır. Oyuncu, yılanın kendine veya duvarlara çarpmasını engelleyerek mümkün olduğunca uzun süre hayatta kalmaya çalışır.
Python, okunabilir sözdizimi ve geniş kütüphane desteği ile oyun geliştirmeyi kolaylaştırır. Özellikle yeni başlayanlar için ideal bir dildir.
Python’da 2D oyunlar yapmak için en çok kullanılan kütüphanelerden biri pygame’dir. Bu oyun projesinde de pygame kullanılmıştır.
Bu yılan oyunu projesi, sadece klasik bir yılan oyunu sunmakla kalmaz, aynı zamanda market sistemi, renkli skinler, özel kod girişleri gibi gelişmiş özellikleri de içerir. Bu yönüyle hem öğrenmek isteyenlere hem de geliştirmek isteyenlere uygundur.
Oyuncu oyunu başlatmadan önce “Başlat”, “Market”, “Çık” seçeneklerinden birini seçebilir. Menü mouse ile kontrol edilebilir, bu da kullanıcı dostu bir arayüz sunar.
Yılan ekranda yön tuşlarıyla hareket eder, yemleri topladıkça uzar. Her yem 2 puan kazandırır. Ayrıca Q tuşuyla oyun herhangi bir anda bırakılıp menüye dönülebilir.
Market bölümünde oyuncu:
Oyuncu markette kod giriş kutusuna “Besiktaslı” yazarak bir defaya mahsus olmak üzere +100 puan kazanabilir. Aynı kod tekrar girildiğinde puan verilmez.
Bu python oyun kodu, pygame modülü ile yazılmıştır. Oyunun ana bileşenleri şunlardır:
pygame.display.set_mode
: Oyun ekranını oluşturur.pygame.draw.rect
: Yılanı, yemleri ve arka planı çizer.pygame.event.get
: Kullanıcının klavye ve mouse etkileşimlerini kontrol eder.pygame.KEYDOWN
: Oyuncunun hangi tuşa bastığını tespit eder.pygame.Rect
: Buton ve input alanlarını oluşturur.
Öncelikle bilgisayarınızda Python yüklü olmalıdır. python.org adresinden en güncel Python sürümünü indirebilirsiniz.
Terminal veya komut satırına şu komutu yazın:
pip install pygame
.py
dosyasına yapıştırın (örneğin yilan_oyunu.py
).python yilan_oyunu.py
Python ile oyun geliştirmek isteyenler için bu “python oyun kodu” örneği oldukça öğreticidir. Eğer “python oyun yapımı” alanına ilgi duyuyorsanız, bu yılan oyunu projesiyle sıfırdan başlayarak gelişmiş bir uygulama ortaya koyabilirsiniz. “python yılan oyunu yapmak” isteyen herkes için menülü, marketli ve kullanıcı dostu bu proje ideal bir başlangıç sunar.
Bu yazıda, python kullanarak nasıl eğlenceli ve işlevsel bir yılan oyunu yapabileceğinizi gösterdik. Market sistemi, skin seçimi, özel kod girişi gibi gelişmiş özelliklerle bu oyun basit bir örnekten çok daha fazlasını sunar. Python oyun yapımı yolculuğunuzda size ilham verecek ve projelerinizi bir üst seviyeye taşıyacak bir kaynak olarak bu kodları özgürce kullanabilirsiniz.
Unutmayın: En iyi öğrenme yöntemi uygulamaktır. Şimdi kodları alın, deneyin, geliştirin ve paylaşın!
import pygame
import random
# Renkler ve ayarlar
beyaz = (255, 255, 255)
siyah = (0, 0, 0)
kirmizi = (200, 0, 0)
yesil = (0, 255, 0)
gri = (200, 200, 200)
mavi = (0, 100, 255)
gri_pasif = (180, 180, 180)
genislik, yukseklik = 600, 400
kare_boyutu = 20
yilan_hizi = 10
pygame.init()
font = pygame.font.SysFont("bahnschrift", 25)
saat = pygame.time.Clock()
ekran = pygame.display.set_mode((genislik, yukseklik))
pygame.display.set_caption("🐍 Yılan Oyunu – Menü Girişli")
def kareli_arka_plan():
for x in range(0, genislik, kare_boyutu):
pygame.draw.line(ekran, gri, (x, 0), (x, yukseklik))
for y in range(0, yukseklik, kare_boyutu):
pygame.draw.line(ekran, gri, (0, y), (genislik, y))
def skor_goster(skor):
yazi = font.render(f"Skor: {skor}", True, siyah)
ekran.blit(yazi, [10, 10])
def yilan_ciz(liste):
for x in liste:
pygame.draw.rect(ekran, siyah, [x[0], x[1], kare_boyutu, kare_boyutu])
def yeni_yem_uret(yilan, yemler):
while True:
x = random.randint(0, (genislik - kare_boyutu) // kare_boyutu) * kare_boyutu
y = random.randint(0, (yukseklik - kare_boyutu) // kare_boyutu) * kare_boyutu
if [x, y] not in yilan and [x, y] not in yemler:
return [x, y]
def oyun():
x, y = genislik // 2, yukseklik // 2
dx, dy = 0, 0
yilan = []
uzunluk = 1
yemler = [yeni_yem_uret([], [])]
sayac = 0
oyun_durdu = False
while True:
for e in pygame.event.get():
if e.type == pygame.QUIT: return
if e.type == pygame.KEYDOWN:
if e.key == pygame.K_LEFT: dx, dy = -kare_boyutu, 0
elif e.key == pygame.K_RIGHT: dx, dy = kare_boyutu, 0
elif e.key == pygame.K_UP: dx, dy = 0, -kare_boyutu
elif e.key == pygame.K_DOWN: dx, dy = 0, kare_boyutu
elif e.key == pygame.K_r and oyun_durdu: oyun()
elif e.key == pygame.K_q and oyun_durdu: return
if not oyun_durdu:
x += dx
y += dy
# Kenardan geçiş
if x >= genislik: x = 0
if x < 0: x = genislik - kare_boyutu
if y >= yukseklik: y = 0
if y < 0: y = yukseklik - kare_boyutu
ekran.fill(beyaz)
kareli_arka_plan()
for yem in yemler:
pygame.draw.rect(ekran, yesil, [yem[0], yem[1], kare_boyutu, kare_boyutu])
bas = [x, y]
yilan.append(bas)
if len(yilan) > uzunluk:
del yilan[0]
for parca in yilan[:-1]:
if parca == bas:
oyun_durdu = True
yilan_ciz(yilan)
skor_goster(uzunluk - 1)
pygame.display.update()
for yem in yemler[:]:
if bas == yem:
yemler.remove(yem)
uzunluk += 1
sayac += 1
if sayac % 2 == 0:
yemler.append(yeni_yem_uret(yilan, yemler))
yemler.append(yeni_yem_uret(yilan, yemler))
saat.tick(yilan_hizi)
else:
msg = font.render("💀 Oyun Bitti! R: Yeniden | Q: Menü", True, kirmizi)
ekran.blit(msg, [genislik // 6, yukseklik // 2])
pygame.display.update()
def menu():
secenekler = ["🟢 Başlat", "🛒 Market (Kapalı)", "🔴 Çık"]
secili = 0
while True:
ekran.fill(beyaz)
for i, secenek in enumerate(secenekler):
renk = gri_pasif if "Market" in secenek else (mavi if i == secili else siyah)
yazi = font.render(secenek, True, renk)
ekran.blit(yazi, [genislik // 3, 100 + i * 40])
pygame.display.update()
for e in pygame.event.get():
if e.type == pygame.QUIT:
pygame.quit(); exit()
if e.type == pygame.KEYDOWN:
if e.key == pygame.K_UP:
secili = (secili - 1) % len(secenekler)
elif e.key == pygame.K_DOWN:
secili = (secili + 1) % len(secenekler)
elif e.key == pygame.K_RETURN:
if secili == 0:
oyun()
elif "Market" in secenekler[secili]:
pass # Pasif
elif secili == 2:
pygame.quit(); exit()
menu()