iMedre

SKScene Sınıfının Fonksiyonları Nelerdir 2 ? Sprite Kit Derinlikleri #3

Merhaba dostlar, bir önceki yazıda SKScene sınıfımız nedir  konusu hakkında konuştuk, bu yazıda ise SKScene sınıfının fonksiyonlarını inceleyeceğiz. Eğer SKScene Sınıfı Nedir? yazısını okumadıysanız kırmızı butona tıklayarak okuyabilirsiniz.

Bir Sahne Tanımlama

1-init(size: CGSize)

Yeni bir sahne nesnesine ilk değerini atar ve bu, sınıfın belirlenmiş başlatıcı yöntemidir.

Parametreleri:
size : sahnenin boyutundaki nokta sayısı.

 View'de Sahne Bölümünün Görünürlüğünü Belirleme
2-var camera: SKCameraNode?
Sahnede, sahnenin koordinat alanının hangi kısmının görüneceğini belirleyen kamera node’u görünür.

Bu özelliğin varsayılan değeri sıfırdır, yani sahnenin anchorPoint ve boyut özellikleri, sahnenin hangi kısmının görünür olduğunu belirler. Sahnede bulunan bir kamera node’una işaret edecek şekilde ayarlanırsa, anchorPoint özelliği yok sayılır ve sahne, kamera node’undaki özellikleri kullanılarak oluşturulur.

Sahneyi sahnelemek için sahnenin çocuğu(child) olarak bir kamera eklenmelidir.

Örnek 1, SKScene adlı sahnedeki kameraya nasıl ekleneceğini gösterir. Kamera, sahnenin ortasında, sıfırdan bir anchorPoint ile kamerasız bir sahne oluştururken aynı sonucu veren aynı konuma yerleştirilmiştir.

Örnek 1:
let cameraNode = SKCameraNode()
    
cameraNode.position = CGPoint(x: scene.size.width / 2,
                              y: scene.size.height / 2)
    
scene.addChild(cameraNode)
scene.camera = cameraNode

Not: SKCameraNode sınıfı daha sonra ki yazılarda detaylı incelenecektir.

3-var anchorPoint: CGPoint

Görünümün,  frame’inde sahnenin merkezine karşılık gelen noktadır

Bir sahne sunulduğunda ve bir kamera node’u belirtilmemişse, boyut ve anchorPoint özellikleri sahnenin koordinat alanının hangi kısmının görünümde görülebileceğini belirler.

Birim koordinat alanını kullanarak değeri belirtin. Varsayılan değer, görünümün kare dikdörtgeninin sol alt köşesine karşılık gelen (0,0) değeridir.

4-var size: CGSize

Sahnenin noktalardaki boyutudur. Bir sahne sunulduğunda, boyut ve anchorPoint özellikleri, sahnede görünen ve görülebilen koordinat alanının bölümünü belirler.

Boyut özelliğini yeni bir değere ayarlarsanız, sahnenin didChangeSize (_ 🙂 yöntemi çağrılır. Bu özellik, scaleMode özelliği yeniden boyutlandırılacak şekilde ayarlanmışsa ve sunum görünümü yeniden boyutlandırılıyorsa da değiştirilebilir. Sahnenin boyutu değiştikten sonra, gelecekteki güncellemeler hemen yeni boyutta görüntülenir.

5-func didChangeSize(CGSize)
Sahnenin boyutu değiştiğinde çağrılır.
func didChangeSize(_ oldSize: CGSize)
Sahnenin eski boyutu.

Tipik olarak, sahne içindeki nodelarındaki konumlarını ayarlamak için bu yöntemi kullanırsınız.
6-var scaleMode: SKSceneScaleMode

Sahnenin, onu gösteren görünümle nasıl eşlendiğini tanımlar. Bir sahnenin boyutunun sunulduğu görünümün boyutundan farklı olması mümkündür. Ölçek modu, sahnenin görünen kısmının görünüme nasıl eşlendiğini belirler. Olası değerler SKSceneScaleMode’da listelenmiştir.

Sahnenin Arkaplan rengini ayarlama

7-var backgroundColor: UIColor

Sahnenin arka plan rengini ayarlar.  Varsayılan değeri gri renklidir (RGBA 0.15, 0.15, 0.15, 1.0).

View ve Sahne Koordinatları Arasında Dönüşüm Yapma

8-func convertPoint(fromView: CGPoint)

Bir noktayı görünüm koordinatlarından sahne koordinatlarına dönüştürür. Bu yöntemi çağırmadan önce sahne bir görünümde sunulmalıdır.

9-func convertPoint(toView: CGPoint)

Koordinatları görüntülemek için sahne koordinatlarından bir noktayı dönüştürür. Bu yöntemi çağırmadan önce sahne bir görünümde sunulmalıdır.

Sahnenin Sunulması

10-func sceneDidLoad()
Sahne başlatıldıktan veya kodu çözüldükten hemen sonra çağrılır. İlk ataması yapıldıktan sonra veya kodu çözüldükten sonra herhangi bir özel davranışı uygulamak için bu yöntemi kullanabilirsiniz.
11-func willMove(from: SKView)
Bir sahne görüntüden kaldırılmadan hemen önce çağrılır. Görünümünüzden kaldırılmak üzere olduğunda, sahneniz için herhangi bir özel davranış uygulamak için bu yöntemi kullanabilirsiniz.
12-func didMove(to: SKView)
Bir sahne bir görüntüye sunulduktan hemen sonra çağrılır. Bir görünüm tarafından sunulmak üzere olduğunda, sahneniz için herhangi bir özel davranış uygulamak için bu yöntemi kullanabilirsiniz. Örneğin, sahnenin içeriğini oluşturmak için bu yöntemi kullanabilirsiniz.
13-var view: SKView?
Şu anda sahneyi sunan görünümdür. Bir sahneyi sunmak için, SKView sınıfındaki presentScene (_ : ) yöntemini veya presentScene (_: transition : ) yöntemini çağırırsınız. Sahne şu anda sunulmuyorsa, bu özellik sıfır tutar.
Animasyon Döngüsünü Yürütme
13- var delegate: SKSceneDelegate?
Animasyon döngüsü sırasında çağrılacak bir temsilcidir. Bir temsilci varsa, animasyon döngüsü yöntemlerinden herhangi biri gerçekleştirildiğinde, temsilci aranır. Genellikle, bir sahne alt sınıfını uygulamak istemediğinizde veya çalışma zamanında sahne davranışını dinamik olarak değiştirmek istediğinizde bir temsilci kullanırsınız.
14- func update(TimeInterval)
Sahne aksiyonları değerlendirilmeden önce gerçekleşmesi gereken sahneye özgü güncellemeleri gerçekleştirir. Sahne bir görünümde sunulduğu ve duraklatılmadığı sürece frame başına tam olarak bir kez çağrılır.
15-func didEvaluateActions()
Sahne eylemleri değerlendirildikten sonra gerçekleşmesi gereken sahneye özgü güncellemeleri gerçekleştirir.
16-func didSimulatePhysics()
Fizik simülasyonları yapıldıktan sonra gerçekleşmesi gereken sahneyi belirli güncellemeleri gerçekleştirir.
17-func didApplyConstraints()
Kısıtlamalar uygulandıktan sonra gerçekleşmesi gereken sahneyi belirli güncellemeleri gerçekleştirir.
18-func didFinishUpdate()
Sahne, animasyonları işlemek için gereken tüm adımları tamamladıktan sonra çağrılır.
Sahne Alanı'nda Fizik ile Çalışmak
19-var physicsWorld: SKPhysicsWorld
Sahne ile ilgili fizik simülasyonudur. Her sahne otomatik olarak sahnede bulunan node’lardaki fiziği simüle etmek için bir fizik dünyası nesnesi oluşturur. Bu özelliği, sahnenin yer çekimi gibi küresel fizik özelliklerine erişmek için kullanıyorsunuz. Belirli bir node’a fizik eklemek için physicsBody kullanılır.
Sahnede Ses ile Çalışmak
SpriteKit sahnesine ses eklemenin en basit yolu, ona bir alt SKAudioNode eklemektir:
let audio = SKAudioNode(fileNamed: "drums.mp3")

spriteKitViewController.scene.addChild(audio)

Ancak, sahnenin dinleyicisini tanımlayarak, sahneniz konumsal stereo sesinden faydalanır.

20-var audioEngine: AVAudioEngine

AVFoundation ses motoru, sahnede bulunan ses node’larından ses çalmak için kullanılır. Sahne oluşturulduğunda sizin için bir ses motoru örneği otomatik olarak oluşturulur. Tüm çocuk(child) ses node’larının tümünü kontrol etmek için bir sahnenin ses motorunda yöntemleri ve özellikleri kullanabilirsiniz. Aşağıdaki kod, bir sahnenin genel hacminin 1.0 varsayılan değerinden 0.2’ye düştüğü ve daha sonra duraklatıldığını gösterir:
let scene = SKScene()
scene.audioEngine.mainMixerNode.outputVolume = 0.2
scene.audioEngine.pause()

21-var listener: SKNode?

Sahnedeki konumsal ses için dinleyicinin konumunu belirlemek için kullanılan bir node’dur. Varsayılan değer sıfırdır, yani sahnenin kaynağı, olaydaki SKAudioNode nesnelerinin çaldığı ses efektleri için dinleyici konumu olarak kullanılır. Eğer sıfır olmayan bir değer belirtilirse, sahnede bir node olmalıdır.

Sabitler

22-enum SKSceneScaleMode : Int

Sahnenin alanının, onu gösteren görünümle nasıl eşlendiğini belirleyen modlar.

Bu yazıda SKScene sınıfımızın fonksiyonlarını inceledik, bir sonraki konularda görüşmek üzere.

 

 

 

Erdem Özgür

Yorum Ekle

Bizleri Sosyal Medyadan Takip Edebilirsiniz

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