SpriteKit를 통한 화면 마이그레이션
12042 단어 SpriteKit 시작하기SwiftSpriteKit
전제 조건
스프릿키트에서 화면이란 SKScene class로 표현된다.화면마다 SKScene class를 제작한다는 얘기다.
(iOS) 할 일
4
클라스부터 써.
코드
Hop, Step, Jump를 클릭할 때마다 화면 마이그레이션 코드를 씁니다.(간단하다!)
최초 화면을 담당하는 HopScene class를 쓰도록 하겠습니다.
1화면 모드로 프로젝트를 제작하면 다음 파일을 만들 수 있습니다.
여기는 홉씬입니다.swift를 추가하여 HopScene 화면의 내용과 터치한 후 다음class 처리를 제거합니다.
(단, 다음 클라스는 아직 쓰지 않았기 때문에 이렇게 쓰면 X코드에 욕을 먹기 때문에 적당한 댓글을 출력하고 클라스를 쓴 후에 답장합니다.)
HopScene.swift
import SpriteKit
class HopScene: SKScene{
override func didMoveToView(view: SKView) {
//この画面に来たときにHopって書いてあるラベルを配置
let label = SKLabelNode()
label.text = "Hop"
label.position = CGPoint(x:100,y:70)
self.addChild(label)
}
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
if let _ = touches.first as UITouch? {
//タッチを検出したときにStepSceneを呼び出す
let scene = StepScene(size: self.scene!.size)
scene.scaleMode = SKSceneScaleMode.AspectFill
self.view!.presentScene(scene)
}
}
}
JumpScene class 만들기
하고 있는 일은 홉씬이다.swift와 기본적으로 같습니다.거의 복제품이라 더 멋있게 뛰어다니는 느낌이에요.
StepScene.swift
import SpriteKit
class StepScene: SKScene{
override func didMoveToView(view: SKView) {
let label = SKLabelNode()
label.text = "Step"
label.position = CGPoint(x:100,y:70)
self.addChild(label)
}
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
if let _ = touches.first as UITouch? {
let scene = JumpScene(size: self.scene!.size)
//呼び出すSceneをJumpScene classにしただけ
scene.scaleMode = SKSceneScaleMode.AspectFill
self.view!.presentScene(scene)
}
}
}
JumpScene.swiftimport SpriteKit
class JumpScene: SKScene{
override func didMoveToView(view: SKView) {
let label = SKLabelNode()
label.text = "Jump"
label.position = CGPoint(x:100,y:70)
self.addChild(label)
}
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
if let _ = touches.first as UITouch? {
let scene = HopScene(size: self.scene!.size)
scene.scaleMode = SKSceneScaleMode.AspectFill
self.view!.presentScene(scene)
}
}
}
ViewController.swift에서 최초의 SKScene class를 부르다
ViewController.swift
import UIKit
import SpriteKit
class ViewController: UIViewController {
override func viewDidLoad() {
//HopSceneを呼ぶ
let view = self.view as! SKView
let scene = HopScene()
scene.size = view.frame.size
view.presentScene(scene)
}
}
초기 상태에서는뷰가 SKView가 안 돼서 혼나요.Main.storyboard로 Class를 SKView class로 만듭니다.
(선택 항목으로 사용할 수 없기 때문에 손으로 쳐야 합니다. 선택 항목으로 사용하려면 Linked Framework에 Sprite Kit.frame work를 추가하는 것이 좋습니다.)
Reference
이 문제에 관하여(SpriteKit를 통한 화면 마이그레이션), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/so1_/items/105605622e8edb030e7c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)