iMedre

SKView Sınıfı ve Fonksiyonları- SpriteKit Kütüphanesi #1

Merhaba arkadaşlar, bu yazımızda Sprite Kit kütüphanemizde ekranımıza görüntü aktarımını sağlayan SKView sınıfını  anlatıp, ardından sahip olduğu fonksiyonları inceleyeceğiz.

İlk olarak SKView Nedir?

SKView

Sprite Kit içeriğini görüntülemeye yardımcı olan bir nesnedir ve  bu içerik  bir SKScene nesnesi tarafından sağlanır.

SKScene anlatımına buradaki linke tıklayarak geçebilirsiniz : (bir sonraki yazımız SKScene hakkında olacaktır.)

SKView bazı fonksiyonlara sahiptir. Örneğin ekrana scene(sahne) göstermek,  scene nasıl işlenir ve nasıl yapılandırılabilir, scene’in simülasyonunu duraksatma fonksiyonları, hata ayıklama bilgilerini görüntülemek, view ve scene koordinatları arasında dönüşüm yapmak ve scene içeriğinden resim blogları elde etmek.

Ekrana Scene(Sahne) Göstermek

1- func presentScene(SKScene?)

Bu fonksiyonumuz,  yeni bir sahne sunar ve eğer hali hazırda bir sahnemiz varsa, yeni sahne mevcut sahneyi hemen değiştirir.

2- func presentScene(SKScene, transition: SKTransition)

Bu fonksiyonumuz,  mevcut sahnemizden başka sahneye geçişi sağlar.  ve transition: bizlere iki sahne arasında animasyonlu bir şekilde geçiz yapmamızı sağlar. SKTransition’da kendi içinde birçok fonksiyona sahiptir, ileriki yazılarda anlatılacaktır.

Scene nasıl işlenir ve nasıl yapılandırılır?

1- var delegate: SKViewDelegate?

Bu değişkenimiz, görüntünün işlem oranının(render rate) dinamik kontrolüne izin veren bir temsilci görevindedir.

2- var preferredFramesPerSecond: Int

Bu değişkenimiz, görütünün sahne oluşturmak için kullandığı animasyon kare hızımızı ayarlar ve varsayılan değeri saniyede 60 karedir.

Uygulamanız tercih edilen kare hızını belirlediğinde, görünüm,  görüntülendiği ekranın özelliklerine bağlı olarak mümkün olduğunca kare hızını seçer. Seçilen gerçek kare hızı, tutarlı bir kare hızı sağlamak için genellikle ekranın maksimum yenileme hızının bir faktörüdür. Örneğin, ekranın maksimum yenileme hızı saniyede 60 kare ise, bu aynı zamanda görünümün gerçek kare hızı olarak belirlediği en yüksek kare hızıdır. Ancak, daha düşük bir kare hızı istemeniz durumunda görünüm, gerçek kare hızı olarak saniyede 30, 20 veya 15 kare veya başka bir hız seçebilir.

Uygulamanızın tutarlı bir şekilde sürdürülebileceği bir kare hızı seçmelisiniz.

3- var isAsynchronous: Bool

Bu değişkenimiz, içeriğin eşzamansız olarak oluşturulup oluşturulmadığını belirten bir Bool değeridir. Varsayılan değer True’dur. Değer False ise, bu görünümün içeriği Core Animation güncellemeleriyle senkronize edilir.

4- var allowsTransparency: Bool

Bu değişkenimiz, görünümün saydamlık kullanılarak oluşturulup oluşturulmadığını gösteren bir Boolean özelliğidir. Varsayılan değer False’dur.

 

Bu özellik, çizim sistemini görünümü nasıl ele alması gerektiğini anlatır. False olarak ayarlanırsa, çizim sistemi görünümü tamamen opak olarak ele alır, bu da çizim sisteminin bazı çizim işlemlerini optimize etmesini ve performansı artırmasını sağlar. True olarak ayarlanırsa, çizim sistemi görünümü normal olarak diğer içerikle birleştirir. Bu özelliğin varsayılan değeri False’dur.

Opak bir görünümün sınırlarını tamamen opak içerikle doldurması beklenir; yani içeriğin 1.0 alfa değerine sahip olması gerekir. Görünüm opaksa ve ya sınırlarını doldurmuyorsa ya da tamamen ya da kısmen şeffaf içerik içeriyorsa, sonuçlar tahmin edilemez. Görünüm tamamen veya kısmen şeffaf olduğunda, bu özelliğin değerini her zaman false olarak ayarlayın.

5- var ignoresSiblingOrder: Bool

Ebeveyn-çocuk ve kardeş ilişkilerinin olaydaki düğümlerin oluşturma sırasını etkileyip etkilemediğini gösteren Boole değeridir.

Varsayılan değer False’dur, başka bir deyişle, birden çok düğüm aynı z konumunu paylaştığında, bu düğümler belirlenir ve deterministik bir sırayla işlenir. Ebeveynler çocuklarından önce işlenir ve kardeşler sırayla düzenlenir.

Bu özellik true olarak ayarlandığında, oluşturma sırasını belirlerken ağaçtaki düğümlerin konumu göz ardı edilir. Aynı z konumundaki düğümlerin oluşturma sırası isteğe bağlıdır ve yeni bir frame oluşturulduğunda her zaman değişebilir. Kardeş ve ebeveyn oluşumu dikkate alınmadığında, SpriteKit işleme performansını iyileştirmek için ek optimizasyonlar uygular. Belirli ve deterministik bir sırayla işlenecek düğümlere ihtiyacınız varsa, bu düğümlerin z konumunu ayarlamanız gerekir.

6- var shouldCullNonVisibleNodes: Bool

Görüntünün, görüntüleme node’unda görünmeyen node’ları otomatik olarak işaretleyip engellemediğini gösteren bir Boolean değeridir.

Varsayılan değer true’dur, yani sahne oluşturulduğunda, sahne işlendiğinde, ekran dışındaki node’ları  arar ve bunları oluşturulacak node’lar listesinden alır. Ardından kalan (görünür) node’lar işlenir. Bu normalde istenen davranıştır, çünkü Scene Kiti, nihai çıkışı etkileyemeyen node’larda yüksek işlem yapılmasını önler. Ancak, oyununuz zaten sahnenin node ağacının içeriğini yönetiyorsa (örneğin, ekran dışındaki node’ları ağaçtan kaldırarak), otomatik sahneyi silme işlemini devre dışı bırakmak için bunu false olarak ayarlayabilirsiniz. Sahnenin kaldırılmasını devre dışı bırakmak, bu kontrolün performans yükünü kaldırır, ancak node ağacında bulunan her görünmez veya ekran dışı node, oluşturucunun performansını azaltır.

Scene’in Simülasyonunu Duraksatma Fonksiyonu

1- var isPaused: Bool

Bu degişkenimiz, görünümün sahne animasyonlarının duraklatıldığını belirten bir Boolean değeridir.

Değer True ise , sahnenin içeriği ekranda sabitlenir. Hiçbir eylem yürütülmez ve hiçbir fizik simülasyonu yapılmaz.

Bir uygulama bir aktiften aktif olmayan bir duruma geçtiğinde, isPaused otomatik olarak True olarak ayarlanır. Bir uygulama aktif duruma döndüğünde, isPaused otomatik olarak önceki değerine ayarlanır.

Hata Ayıklama Bilgilerini Görüntüleme

 

1- var showsFPS: Bool

Görünümün bir kare hızı göstergesi gösterip göstermediğini gösteren Boolean değeridir.

2-var showsQuadCount: Bool

Görünümün sahneyi oluşturmak için kullanılan dikdörtgenlerin sayısını gösterip göstermediğini gösteren Boolean değeridir.

3-var showsDrawCount: Bool

Görünümün görüntüyü görüntülemek için gerekli olan çizim sayısını gösterip göstermediğini gösteren Boolean değeridir.

4-var showsNodeCount: Bool

Görünümün sahnede görünen fizik gövdelerini gösteren bir bindirmeyi gösterip göstermediğini gösteren Boole değeridir.

5-var showsPhysics: Bool

Görünümün fizikle ilgili hata ayıklama bilgilerini gösterip göstermediğini gösteren Boolean değeridir.

6-var showsFields: Bool

Görünümün sahnede fizik alanları hakkındaki bilgileri gösterip göstermediğini gösteren Boolean değeridir.

View ve Scene Koordinatları Arasında Dönüşüm Yapmak

 1-func convert(CGPoint, from: SKScene)

Koordinatları görüntülemek için sahne koordinatlarından bir noktayı dönüştürür.

2-func convert(CGPoint, to: SKScene)

Bir noktayı görünüm koordinatlarından sahne koordinatlarına dönüştürür.

Scene İçeriğinden Resim Blogları Elde Etmek

1-func texture(from: SKNode, crop: CGRect)

Bir node’un içeriğinin bir bölümünü oluşturur ve oluşturulan görüntüyü bir SpriteKit dokusu olarak döndürür.

2-func texture(from: SKNode)

Bir node ağacının içeriğini oluşturur ve oluşturulan görüntüyü bir SpriteKit dokusu olarak döndürür.
Bu yazımda SKView sınıfından birçok fonksiyon ve değişken öğrendik, iOS oyun geliştiricileri olarak, bu fonksiyonların ne işe yaradıklarını bilmeliyiz, umarım çevirim yararlı olmuştur, başka konularda görüşmek üzere…

 

 

 

 

 

Erdem Özgür

1 Yorum

Bizleri Sosyal Medyadan Takip Edebilirsiniz

Utanmana gerek yok, bizimle iletişim kurabilirsin. İnsanlarla tanışmayı ve yeni arkadaşlar edinmeyi seviyoruz.