pygame ile Oyun Programlama
python, şuana kadarki öğrendiğim bütün programlama dilleri arasında en hızlı olması ve rahat kodlama yapılabilmesi sayesinde en çok kullandığım programlama dili haline geldi.ayrıca pythonu öğrenmek için fazla çabaya ihtiyacınız yok, çok rahat dil yapısı sayesinde kolayca öğrenilebiliyor.
Giriş olarak pythondan bahsetmek istedim zira pygame pythonun bir kütüphanesi. pygame ile oyun yazmaya başlamadan önce bilgisayarınızda python ve pygame yüklü olması gerekir.
pygame 2 boyutlu oyunlar yapmak için kullanılıyor,tabii eğer opengl bilginiz varsa pyopengl'i deneyebilirsiniz.
pygame'i tanıtmak için boş bir şablon hazırlayarak işe başlayalım;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
import pygame
from pygame.locals import *
pygame.init()
ekran = pygame.display.set_mode((300,300), 0, 32)
while True:
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
ekran.fill((255,0,0))
pygame.display.update()
1
2
import pygame,sys
from pygame.locals import *
Bu iki satır kod pygame i içeri aktarıyor(sys pythonun kendi kütüphanesi)
1
pygame.init()
pygame modülümüzü başlatmamızı sağlıyor
1
ekran = pygame.display.set_mode((300,300), 0, 32)
Burada ise pygame bizim için bir pencere açtı. Kullanım özelliklerine bakacak olursak;
pygame.display.set_mode(ekran büyüklüğü,bayraklar*,derinlik)
Gördüğünüz gibi 300e 300 bir ekran oluşturduk ve bunun derinliğini 32bit yaptık.
Bayraklara gelecek olursak, örneğin tam ekran yapmak için buraya
pygame.FULLSCREEN yazmamız gerekiyordu. Yada penceremizi genişletilebilir yapmak istiyorsak pygame.RESIZABLE yazabilirdik. Biz buraya 0 diyerek boş bıraktık.
1
while True:
-biz kapatmadığımız sürece- Sonsuz bir döngü oluşturuyor.
1
2
3
4
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
Bu küçük kodumuz eğer "event" yani olay "QUIT" yani kapatma ise bizim için pygame i kapatıyor, ardındanda sys kütüphanesi ile pythonu kapatıyor.
1
ekran.fill((255,0,0))
Ekranımızı sürekli olarak kırmızıya boyuyor. (rgb kodu)
1
pygame.display.update()
Bu kodumuz hazırlanan çizimleri ekrana yansıtıyor.
Artık şablonumuz üzerinden bir-iki küçük fonksiyonla çizimler yapabiliriz. Yanlız çizim fonksiyonlarımızı döngü içine yazacağız.
1
pygame.draw.rect(ekran,(255,255,255),(10,10,20,20))
Bu kodumuz ekrana beyaz bir kare çizer. Fonksiyonu açıklayacak olursak;
pygame.draw.rect(ekran,renk,(x,y,genislik,yukseklik))
Buradaki ekranı daha önce tanımlamıştık.
rengimizi rgb kodu ile belirledik.
x ve y koordinatı.
genişlik ve yüksekliğide heralde açıklamama gerek yok
Şimdi örnek olarak bir .wav dosyasını nasıl çalacağımızı göreceğiz. İlk önce döngüden önce ses dosyamızı pygame e tanıtıyoruz
1
ses=pygame.mixer.music.load('ses.wav')
Daha sonra döngü içinde istedğimiz yere
1
ses.play()
diyerek dosyamızı oynatıyoruz.
Eğer bir resmi içeri aktarmak isteseydik ne yapardık? Ses gibi resmide döngü dışında pygame e tanıtıyoruz
1
resim=pygame.image.load('resim.jpg')
Daha sonra döngü içinde istedğimiz yere
1
ekran.blit(resim,(50,50))
diyerek resmimizi gösteriyoruz. Buradaki (50,50) resmimizin koordinatı oluyor, bu değerleri değiştirerek resmimizi oynatabiliyoruz
Örnekler daha çok uzatılabilir. Fakat sonuç: rahat+hızlı+kullanışlı
Bu konunun sonunda eğer pygame indirmek isterseniz buraya, pygame dökümanlarını incelemek isterseniz, buraya girebilirsiniz.
Bütün kodları "generic" tagı içine yazdım. Kodamandan en yakın zamanda python taglarınıda bekleriz
/* Etiketler: YAZILIM, PYTHON, OYUN, PROGRAMLAMA, PYGAME */
/* CeloronWeb yazdı. 15 Temmuz 2009 14:10. 5 yorum var */