Fotoğraf Josue Valencia @Unsplash

PyGame ile Basit Shoot’m up Oyun Yapımı #2

Sprite Kullanımı

Ace Snork
Ace Snork
Sep 7, 2018 · 2 min read

Simsiyah boş bir ekranın pek bir anlamı yok. Uçağımı yerleştireyim. Grafik işinden fazla anlamadığım için fazla yazılımcı grafiğine (bkz: coder graphics) maruz bırakmamak adına kenny.nl’nin grafik paketlerini kullanacağım. Bu sitedeki grafik paketleri spritesheet formatında ve XML dosyasıyla beraber geliyorlar. Aşağıda kenny.nl sprite sheet’lerinden grafik çeken bir SpriteSheet sınıfı var.

Spritelarımı tanımlarken bu sınıftan faydalanacağım.

xml.etree.ElementTree modünün nasıl çalıştığı hakkında konuyu dağıtmamak için detaya girmeyeceğim. Sanırım xml yapısını self.map özelliği altında kopyaladığını ve get_image() metoduyla ismi verilen resmi spritesheet’ten keserek döndürdüğünü söylemem kafi olacaktır.

Doğru tahmin ettiniz “self.spritesheet.subsurface(rect)” methodu surface nesnesini rect ile belirlenen kısmına denk gelen imajı döndürüyor.

sheet = SpriteSheet(“assets/sheet.png”, “assets/sheet.xml”) ile spritesheet nesnemi ve:

playerSprite = sheet.get_image(“playerShip3_blue.png”) ile sprite’ımı tanımlıyorum. PyGame’de bir sprite tanımlamak onun ekranda görüneceği anlamına gelmiyor. Tanımladığım sprite’ı bir de oyun ekranına kopyalamam lazım. Bunu döngü içinde eklediğim screen.blit(playerSprite, (160,500)) komutuyla yaptım. Surface nesnelerinin blit metodu o yüzeye grafik kopyalamaya yarıyor. Neden ana döngü içinde? Çünkü ileride konumunu değiştirdiğimde yeni konumun görünmesi için tekrar kopyalamam gerekecek.



Bu serinin diğer yazıları için: PyGame ile Basit Shoot’m Up Oyun Yapımı

Ace Snork

Written by

Ace Snork

Amatör yazılımcı, eski bilgisayarlar meraklısı, gürültülü müzik dinleyicisi

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade