Wiem, jak zrobić i zapisać zrzut ekranu w bibliotece zdjęć. Robię to za pomocą poniższego kodu. Chciałbym zamienić moje obrazy przycisków scen poziomu na zrzuty ekranu z mojej gameScene. Powiedzmy, że moje przyciski graficzne mają wymiary 150 x 150. Jak mogę to osiągnąć?Jak mogę zamienić obraz przycisku poziomu na zrzut ekranu sceny gry poziomu?
func takeScreenShot(scene:SKScene) {
let bounds = self.scene!.view?.bounds
UIGraphicsBeginImageContextWithOptions(/*CGRect(x: 0, y: 0, width: 100, height: 100).size*/bounds!.size, true, UIScreen.main.scale)
self.scene?.view?.drawHierarchy(in: bounds!, afterScreenUpdates: true)
let screenshot = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
UIImageWriteToSavedPhotosAlbum(screenshot!, nil, nil, nil)
}
class LevelSelectScene: SKScene {
let button1: SKSpriteNode = SKSpriteNode(imageNamed: "image1")
let button2: SKSpriteNode = SKSpriteNode(imageNamed: "image2")
let button3: SKSpriteNode = SKSpriteNode(imageNamed: "image3")
...
override init(size: CGSize){
super.init(size: size)
button1.position = CGPoint(x: self.frame.width/4, y: self.frame.height/2)
self.addChild(button1)
button2.position = CGPoint(x: self.frame.width/2, y: self.frame.height/2)
self.addChild(button2)
button3.position = CGPoint(x: 3*self.frame.width/4, y: self.frame.height/2)
self.addChild(button3)
}
Oczywiście, jeśli chcesz zbudować kolekcję przycisków, po prostu zapisz różne tekstury w tablicy. –
'zrzut ekranu' jest opcjonalny – 0x141E