Phaser sahne sistemi, obje yükleme ve ekleme

Bu yazıda basitçe phaser 3 oyun kütüphanesi ile bazı temel işlemlerin nasıl yapıldığını anlatmaya çalışacağım. Phaser hakkında bilginiz yoksa Phaser’ın ne olduğu, nereden indirileceği vs. hakkında bilgiler içeren yazımı okuyabilirsiniz. Öncelikle phaser sahne sisteminden (scene) bahsetmek istiyorum.

 

Phaser 3’de oyunun her ekranına scene ismi veriliyor(phaser 2’de state diye adlandırılıyordu). Mesela menü ekranı, level seçme ekranı, oyun ekranı, oyun sonu ekranı vs.. hepsi ayrı birer sahne olabilir. Ya da isterseniz her şey tek bir sahnede yer alabilir. Genelde bir çok örnekte her şey tek bir ekranda yer alır. Genelde örnekler ufak boyutlu olduğu için bu problem çıkarmaz ancak oyunun kapsamı arttıkça oyunu ne kadar çok parçaya ayırırsanız kodlamak o kadar rahat olacaktır. Kaç ekran olacağı tamamen sizin inisiyatifinizde olan bir şey; isterseniz oyunun bölümlerini bile parçalara ayırabilirsiniz. Tamamen size kalmış.

 

İlk olarak örneklerde kullanılan tek sahneli sistemi inceleyelim. Sahneler oyunun config objesinde tanımlanır.

 

config objesi içerisinde scene diye bir özellik mevcut. Bütün sahneler bu kısma ekleniyor. Birden fazla sahne olacaksa buraya bütün sahneleri dizi olarak ekleyebiliyoruz ancak sadece bir tane sahnemiz olduğu için tek bir obje olarak ekliyoruz.

preload, create ve update özellikleri Phaser tarafından tanımlanmış özel fonksiyonlardır. Her sahne içerisinde bunlara benzer 10’a yakın fonksiyon yer alır. Bu fonksiyonların en önemlileri(en çok kullanılanları) bu üç fonksiyondur.. Bu üç fonksiyon basitçe:

 

-preload:  resim, ses, json vs. dosyaları yüklediğimiz kısım

-create: sahnedeki objeleri oluşturduğumuz kısım. Preload’tan sonra çağırılır bu sayede yüklenilen resim, ses vs. ile objelerimizi oluşturabiliriz.

-update: sahnenin güncellendiği kısım. Bulunulan sahneden ayrılana kadar bu fonksiyon sürekli çağırılır. Objeleri hareket ettirme, diğer kontroller vs. bu kısımda yapılır. Yani oyunun merkezi burasıdır diyebiliriz.

 

Bu fonksiyonların her birinin içerisinden this ile Phaser’ın bir çok fonksiyonuna erişiyoruz. Mesela this.load ile yükleme işlerini yapıyoruz, this.add ile obje ekleme işlerini yapıyoruz. Bunlar gibi Phaser  içerisinde bir çok fonksiyon mevcuttur, yeri geldikçe diğerlerine de bakacağız.

 

Basitçe bir kutu resmi yükleyip, ekranda oynatmak istersek şöyle bir şey yapabiliriz:

 

 

Grafikler ismiyle bir klasör oluşturup altına kutu.png ismiyle bir grafik oluşturmanız gerekiyor. Ya da grafiğinizin ismi farklıysa kod içerisinde değiştirmeniz gerekiyor.

Burada preload kısmında kutu resmini grafikler klasörünün altından yüklüyoruz ve ismini kutuResim olarak atıyoruz. Bu yüklediğimiz resme oyun içerisinden her yerden ismini kullanarak (kutuResim) ulaşabiliriz.

 

Grafiği yükledikten sonra create kısmında yeni bir obje ekliyoruz ve hiz diye özellik tanımlıyoruz. Sonrasında update fonksiyonu içerisinde kutuyu hareket ettiriyoruz.

 

Objeyi hareket ettirme işlemini fizik motoru kullanarak da yapabiliriz ancak burada basitlik adına fizik motoru kullanmadan yaptık.

Basitçe tek sahneli bir projeyi bu şekilde oluşturabilirsiniz, başka bir yazıda da birden fazla sahneli projenin nasıl oluşturulacağından, sahneler arası geçişin nasıl yapılacağından bahsetmeye çalışırım.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir