Playground: SpriteKit Kullanımı
Playground projenizde nasıl SpriteKit kullanabileceğinizi öğrenin!
Merhaba sevgili TurkishKit okuyucuları.👋 Bu yazımızda Swift Student Challenge projenizde eğlenceli bir deneyim yaratabilmek için kullanılabileceğiniz en önemli kütüphanelerden biri olan SpriteKit’ten bahsedeceğim.
SpriteKit Nedir?
SpriteKit, Apple’ın kendi platformlarında çalışması için geliştirdiği iki boyutlu oyun motorudur.🕹 Fizik ve grafik motorunu kendi içinde barındıran SpriteKit, Playground projelerinde oldukça yaygın olarak kullanılmaktadır.
SpriteKit ve nasıl kullanıldığı hakkında daha fazla bilgi almak isterseniz, bu konu ile ilgili diğer makalelerimize göz atabilirsiniz.
SpriteView
elemanını Playground ekranına koymadan önce bir SwiftUI View
elemanı oluşturmamız gerekiyor. Bunun için UserModules > UserModule.playgroundmodule > Sources klasöründe “FirstPage.swift” adlı bir dosya oluşturarak aşağıdaki kodu projemize ekleyelim. (Dosya ismini projeye göre belirleyebilirsiniz.)
import SwiftUI
import SpriteKit
import PlaygroundSupportpublic struct FirstPage: View { // MARK: - Properties
@State var viewState = CGSize.zero // MARK: - Life Cycle
public init() {} // MARK: - View
public var body: some View {
Text("Merhaba sevgili TurkishKit oyucuları!")
}
}
Playground sayfasının klasöründe bulunan “main.swift” dosyasına ise bu kodları ekleyelim.
import SwiftUI
import PlaygroundSupportlet view = FirstPage()
let page = UIHostingController(rootView: view)
page.preferredContentSize = CGSize(width: 800, height: 600)
PlaygroundPage.current.liveView = page
Şu anda Playground’un ilk sayfasında sadece “Merhaba sevgili TurkishKit okuyucuları” yazısı bulunuyor.
Şimdi örnek bir SpriteKit Scene’i oluşturmak için aşağıdaki kodu “FirstPage.swift” dosyasına ekleyelim.
class GameScene: SKScene { // MARK: - Properties
let box = SKShapeNode(rectOf: CGSize(width: 300, height: 100)) // MARK: - Life Cycle
override func didMove(to view: SKView) {
addBox()
let move = SKAction.moveBy(x: 1100.1, y: 0, duration: 11.2)
box.run(move)
} func addBox() {
box.name = "box"
box.position.y = 150
box.position.x = 0
box.fillColor = UIColor.red
self.addChild(box)
}
}
Böylece ekranda 300x100 boyutunca kırmızı bir dikdörtgen gösterebileceğiz. Ayrıca bu dikdörtgen sağa doğru hareket edecek.
Şimdi SwiftUI View
elemanının içinde bir SKScene
oluşturarak SpriteView
elemanını istediğimiz yerde kullanabiliriz! 🎉
var scene: SKScene {
let scene = GameScene()
scene.size = CGSize(width: 700, height: 300)
scene.scaleMode = .fill
return scene
}public var body: some View {
SpriteView(scene: scene)
}
Bu noktada Playground’unuz çalışmıyorsa bu, yetersiz RAM’den kaynaklanıyor olabilir. iOS/macOS/Swift Playgrounds uygulaması, projenizin olması gerektiğinden daha fazla RAM kullandığını algılarsa sistemin yavaşlamaması için projeyi durdurabilir.
Bu sorunun çözümü için aşağıdaki makalemizi okuyabilirsiniz:
Eğer böyle bir sorunla karşılaşmadıysanız ve adımları doğru bir şekilde takip ettiyseniz bu ekranı görmelisiniz:
Umarım bu yazıda sizlere yardımcı olabilmişimdir. Yeni yazılarımızda görüşmek üzere.👋