Oyunlarda Resimleri Kırpma – SpriteKit CropNode
Farz edelim ki altta görünen soldaki şekilde bir fotoğrafınız ve ortada görünen şekilde bir çerçeveniz var, fotoğrafı bu çerçevenin içine koymak için fotoğrafı aynı çerçeve şeklinde kesersiniz.

Bilgisayar tabanlı grafiklerde biz buna “kırpma” (Crop) demekteyiz.
iOS için SpriteKit ile oyun geliştirirken kırpma işlemi, ilk olarak bir bu iş özel sunulan SKCropNode nesnesi oluşturmalısınız. SKCropNode’un çok önemli bir özelliği ne şekilde kırpacağını (yukarıdaki örnekteki ortadaki çerçeve) anlayacağı maskeleme anahtarı katmanı (Mask Node) ‘dır. Maskeleme anahtarı şu şekilde çalışır. Eğer bu katmanda bir piksel boyalı ise tam altında denk düşen alt fotoğrafın o pikseli görünür. Eğer saydam (transparent) boyasız ise alttaki piksel de gözükmez.
Bu halde yukarıdaki örnekte gösterilen fotoğraf çerçevesinin SpriteKit’te karşılığı maskeleme anahtar katmanı şu şekilde olacaktır. Rengin ne olduğu hiç önemli değildir, önemli olan bir renk olması yani saydam olmamasıdır. Renkli kısımların altı görünür. Bu da aslında bir SKSpriteNode nesnesidir.

Kodlama tarafına bakarsak ilk önce maskeleme katmanını resmini okuruz, kırpma düğümünü oluşturup maskNode özelliğine bir önce okuduğumuz maskeleme katmanını atarız.
// Maske Katmanını Oku
let maskeKatmanı = SKSpriteNode(imageNamed: "maskeKatmanı")
// Kırpma katmanını oluştur ve maske katmanını ata
let kırpmaKatmanı = SKCropNode()
kırpmaKatmanı.maskNode = maskeKatmanı
Sonrasında kırpıp işleyeceğimiz resmi örneğin kırpılacakResim isimli bir düğüm oluşturup buna okuruz. Son olarak da yeni oluşturduğumuz bu kırpılacak resmi kırpmaKatmanına alt nesne – çocuk olarak ekleriz.
kırpılacakResim = SKSpriteNode(imageNamed: "ayşenaz")
kırpmaKatmanı.addChild(kırpılacakResim)