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

Python ile Basit Bir Yılan Oyunu Yapımı: Adım Adım Rehber

Python ile Basit Bir Yılan Oyunu Yapımı: Adım Adım Rehber

Bu makalede, Python programlama dili ve Pygame kütüphanesini kullanarak basit bir yılan oyunu geliştireceğiz. Bu proje, Python'a yeni başlayanlar için harika bir başlangıç noktasıdır ve oyun geliştirmenin temel prensiplerini anlamalarına yardımcı olacaktır. Makalede, oyunun temel bileşenlerini oluşturmaktan, yılanın hareketini sağlamaya, yiyecek eklemeye ve oyunun bitiş koşullarını belirlemeye kadar her adımı detaylı bir şekilde ele alacağız.

Gereksinimler

  • Python (3.x önerilir)
  • Pygame kütüphanesi

Pygame kütüphanesini yüklemek için aşağıdaki komutu kullanabilirsiniz:

pip install pygame

Oyunun Temel Yapısı

Öncelikle, oyunun temel yapısını oluşturalım. Bu, oyun penceresini oluşturmayı, renkleri tanımlamayı ve bazı temel değişkenleri başlatmayı içerir.


import pygame
import random

pygame.init()

# Ekran boyutları
width, height = 600, 480

# Renkler
black = (0, 0, 0)
white = (255, 255, 255)
red = (255, 0, 0)
green = (0, 255, 0)

# Oyun penceresi oluştur
game_display = pygame.display.set_mode((width, height))
pygame.display.set_caption('Yılan Oyunu')

clock = pygame.time.Clock()

block_size = 10
snake_speed = 15

font_style = pygame.font.SysFont(None, 30)


def message(msg, color):
 text_surface = font_style.render(msg, True, color)
 text_rect = text_surface.get_rect()
 text_rect.center = (width / 2, height / 2)
 game_display.blit(text_surface, text_rect)


def gameLoop():
 game_over = False
 game_close = False

 x1 = width / 2
 y1 = height / 2

 x1_change = 0
 y1_change = 0

 snake_List = []
 Length_of_snake = 1

 foodx = round(random.randrange(0, width - block_size) / 10.0) * 10.0
 foody = round(random.randrange(0, height - block_size) / 10.0) * 10.0

 while not game_over:

 while game_close == True:
 game_display.fill(white)
 message("Kaybettin! Tekrar oynamak için Q'ya, çıkmak için C'ye bas", red)
 pygame.display.update()

 for event in pygame.event.get():
 if event.type == pygame.KEYDOWN:
 if event.key == pygame.K_q:
 gameLoop()
 if event.key == pygame.K_c:
 pygame.quit()
 quit()

 for event in pygame.event.get():
 if event.type == pygame.QUIT:
 game_over = True
 if event.type == pygame.KEYDOWN:
 if event.key == pygame.K_LEFT:
 x1_change = -block_size
 y1_change = 0
 elif event.key == pygame.K_RIGHT:
 x1_change = block_size
 y1_change = 0
 elif event.key == pygame.K_UP:
 y1_change = -block_size
 x1_change = 0
 elif event.key == pygame.K_DOWN:
 y1_change = block_size
 x1_change = 0

 if x1 >= width or x1 = height or y1  Length_of_snake:
 del snake_List[0]

 for x in snake_List[:-1]:
 if x == snake_Head:
 game_close = True

 our_snake(block_size, snake_List)
 Your_score(Length_of_snake - 1)

 pygame.display.update()

 if x1 == foodx and y1 == foody:
 foodx = round(random.randrange(0, width - block_size) / 10.0) * 10.0
 foody = round(random.randrange(0, height - block_size) / 10.0) * 10.0
 Length_of_snake += 1

 clock.tick(snake_speed)

 pygame.quit()
 quit()


def Your_score(score):
 value = font_style.render("Puan: " + str(score), True, black)
 game_display.blit(value, [0, 0])


def our_snake(block_size, snake_list):
 for x in snake_list:
 pygame.draw.rect(game_display, black, [x[0], x[1], block_size, block_size])

gameLoop()

Bu kod, Pygame'i başlatır, ekran boyutlarını ve renkleri tanımlar, oyun penceresini oluşturur ve oyun döngüsünü başlatır.

Yılanı Oluşturma ve Hareket Ettirme

Şimdi yılanı oluşturalım ve hareket ettirelim. Yılan, ekranda bir dizi bloktan oluşacak ve oyuncu tarafından kontrol edilecektir. Yılanın hareketini sağlamak için, klavye girdilerini dinleyeceğiz ve yılanın konumunu buna göre güncelleyeceğiz.

Yukarıdaki kod örneğinde, gameLoop fonksiyonu içerisinde yılanın başlangıç pozisyonu (x1, y1) ve hareket yönü (x1_change, y1_change) tanımlanmıştır. Klavye girdileri (pygame.event.get()) dinlenerek, yılanın hareket yönü değiştirilir. Yılanın konumu her döngüde güncellenir ve ekrana çizilir (pygame.draw.rect()).

Yiyecek Ekleme

Oyunun daha ilginç olması için yiyecek ekleyelim. Yiyecek, ekranda rastgele bir konumda görünecek ve yılan yiyeceği yediğinde, yılanın boyutu artacaktır. Yiyecek eklemek için, rastgele bir konum oluşturmamız ve yılanın yiyeceği yiyip yemediğini kontrol etmemiz gerekir.

Yukarıdaki kod örneğinde, foodx ve foody değişkenleri, yiyeceğin rastgele konumunu temsil eder. Yılanın başı (x1, y1) yiyeceğin konumuyla aynı olduğunda, yılan yiyeceği yemiş demektir. Bu durumda, yeni bir yiyecek konumu oluşturulur ve yılanın boyutu artırılır (Length_of_snake += 1).

Oyunun Bitiş Koşullarını Belirleme

Oyunun bitiş koşullarını belirleyelim. Oyun, yılan ekranın dışına çıktığında veya kendi üzerine çarptığında sona erecektir. Oyunun bitiş koşullarını kontrol etmek için, yılanın konumunu ve boyutunu sürekli olarak kontrol etmemiz gerekir.

Yukarıdaki kod örneğinde, gameLoop fonksiyonu içerisinde yılanın ekranın dışına çıkıp çıkmadığı ve kendi üzerine çarpıp çarpmadığı kontrol edilir. Bu koşullardan herhangi biri sağlandığında, game_close değişkeni True olarak ayarlanır ve oyun sona erer. Oyuncu, tekrar oynamak veya oyundan çıkmak için seçeneklere sahiptir.

Puanlama Sistemi Ekleme

Oyuna bir puanlama sistemi ekleyerek, oyuncunun performansını takip etmesini sağlayabiliriz. Her yiyecek yediğinde oyuncuya bir puan verilebilir. Puan, ekranın bir köşesinde gösterilebilir.

Yukarıdaki kod örneğinde, Your_score fonksiyonu, oyuncunun puanını (Length_of_snake - 1) ekrana yazdırır. Puan, yılanın yediği yiyecek sayısıyla doğru orantılıdır.

Ek İyileştirmeler

Bu basit yılan oyununu daha da geliştirmek için birçok farklı iyileştirme yapabilirsiniz. İşte bazı öneriler:

  • Farklı zorluk seviyeleri ekleyin (yılanın hızı, yiyeceklerin sıklığı vb.).
  • Farklı yılan ve yiyecek tasarımları ekleyin.
  • Ses efektleri ve müzik ekleyin.
  • Çok oyunculu mod ekleyin.
  • Grafikleri geliştirin ve daha modern bir görünüm kazandırın.

Sonuç

Bu makalede, Python ve Pygame kullanarak basit bir yılan oyunu geliştirdik. Bu proje, Python'a yeni başlayanlar için harika bir başlangıç noktasıdır ve oyun geliştirmenin temel prensiplerini anlamalarına yardımcı olacaktır. Umarız bu rehber, kendi oyunlarınızı geliştirmek için size ilham verir.

Bu makalede verilen kod örneği, temel bir yılan oyununun işlevselliğini göstermektedir. Kodu daha da geliştirmek ve kişiselleştirmek tamamen size kalmıştır. İyi eğlenceler!

Cevap bırakın

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