SpriteKit의 8 화면 변환 시도
spriteKit의 화면 전환은 매우 간단하다.
GameScene.swift
override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
/* Called when a touch begins */
for touch in (touches as! Set<UITouch>) {
let nextScene = NextScene()
nextScene.size = self.size
let transition = SKTransition.crossFadeWithDuration(2)
self.view?.presentScene(nextScene, transition: transition)
}
}
NextScene.swift
import Foundation
import SpriteKit
class NextScene: SKScene {
override func didMoveToView(view: SKView) {
/* Setup your scene here */
self.backgroundColor = UIColor.blueColor()
let myLabel = SKLabelNode(fontNamed:"Chalkduster")
myLabel.text = "Goodbye, World!";
myLabel.fontSize = 65;
myLabel.position = CGPoint(x:CGRectGetMidX(self.frame), y:CGRectGetMidY(self.frame));
self.addChild(myLabel)
}
}
이외에 화면 이동의 종류는 아래 페이지를 참고할 수 있다.소스는 Objective-C이지만 거의 달라진 게 없다고 생각해요.[iOS7] Sprite Kit의 화면 마이그레이션 애니메이션 요약
다음은 SKTransition의 종류 중 하나이며 CIFilter의 샘플을 사용합니다.위의 링크에 샘플이 없기 때문입니다.
GameScene.swift
override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
/* Called when a touch begins */
for touch in (touches as! Set<UITouch>) {
let nextScene = NextScene()
nextScene.size = self.size
let ciFilter:CIFilter = CIFilter(name: "CISwipeTransition")
ciFilter.setDefaults()
let transition = SKTransition(CIFilter: ciFilter, duration: 2)
self.view?.presentScene(nextScene, transition: transition)
}
}
이 CIFilter를 사용하다가 걸려 넘어졌습니다. 주의하십시오.왜 걸려서 넘어졌는지.CIFilter에 맞으면 뭐든지 쓸 수 있다는 건 아니에요.
당분간 그걸 눈치채지 못했기 때문이다.
예를 들어 CISEpiaTone을 사용하려고 했습니다.
let ciFilter:CIFilter = CIFilter(name: "CISepiaTone")
ciFilter.setValue(0.8, forKey: "inputIntensity")
그러나 이것은 컴파일 오류가 되지는 않지만 실행할 때 NSUnknownKeyException이 됩니다.구체적으로 말하면 이 오류가 발생할 것이다.this class is not key value coding-compliant for the key inputTargetImage.'
당초 설정을 잊어버린 줄 알고 setValue를 추가했지만 전혀 해결되지 않았다.그래서다시 한 번 살펴보니 inputImage와 inputTargetImage만 매개 변수로 사용할 수 있을 것 같습니다.그 규칙에 따르면 CISepiaTone의 매개 변수는 inputImage와 inputIntensity만 있기 때문에 오류가 발생하는 것은 당연한 것이다.즉, inputImage, inputTargetImage만 매개 변수로 SKTransition의CIFilter에 설정할 수 있다.
그러면 어떤 필터가 가능한지 참고하세요.단, 매개 변수 조건이 충족되더라도 iOS에서는 사용할 수 없는 것들이 많으니 주의해 주십시오.
또 필터의 종류에 따라 추가 파라미터 설정이 필요할 수도 있다.다 시도하지 않아서 잘 모르겠어요.
참고 자료
Reference
이 문제에 관하여(SpriteKit의 8 화면 변환 시도), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/rnsm504/items/9a1464f2ab59cf0e9266텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)