[SpriteKit] 장면 크기 및 장치 화면 크기 조정 방법
이 문장에 관하여
SpriteKit에서 게임을 개발할 때 몇 년 전에는 Xcode의 GUI를 사용하지 않고 삐걱삐걱 인코딩하는 것이 당연하였지만 최근에는 GUI의 보조가 충실해져 유니티처럼 개발할 수 있게 되었다.
이 글에서 우리는 SpriteKit
에서 게임 개발의 첫 번째 단계인'보기에서 장면 보이기'부분에 중점을 두었다.
뷰 및 장면
UIKit
응용 프로그램을 개발할 때 노선 보기에 끊임없이 보기를 추가합니다.
이때의 근시도는 UIView
류이고 자시도는 주로 UIView
의 자류이다.
이에 비해 SpriteKit
의 게임 개발에서 근시도는 SKView
이다.
또한 게임 자체는 장면이라고 불리는SpriteKit
의SKScene
류에서 묘사된다.
즉, (보기) SKView
(장면) 을 표시합니다.
이때 루트 보기SKScene
는 장치 화면 사이즈여야 하지만 장면SKView
은 개발자가 적당한 사이즈로 재조정해야 한다.
작업 환경
Swift3.0.1
Xcode8.2
iOS10.2
프로젝트 준비
iOS SKScene
에서 새 항목 만들기Single View Template
파일 이름 바꾸기ViewController.swift
(탐색 영역)
클래스 이름 GameViewController.swift
에서 ViewController
(편집기 영역) 으로 변경
뷰 컨트롤러의 루트 뷰를 GameViewController
로 변경(검사기 영역)
GameScene 클래스 정의
메뉴 모음에서 "File > New > File...> iOS > Cocoa Touch Class"를 선택하여 저장SKView
GameScene.swiftimport SpriteKit
class GameScene: SKScene {
// something to do
}
새 장면 파일 만들기
메뉴 모음에서 "File > New > File...> iOS > Resource > SpriteKit Scene"을 선택하여 저장합니다GameScene.swift
.
앵커 포인트 및 크기
그림새 장면 파일
크기(w:750, h:13334), 닻점(X:0.5, Y:0.5).
사이즈는 아이폰7의 4.7인치 상태이고 닻점은 장면 중앙의 십자인이다.
참고로 4.7인치 보기 컨트롤러의 보기 크기는 (X:375, Y:667)입니다.
이를 통해 알 수 있듯이 장면은 픽셀 단위, 보기 컨트롤러는 점 단위이다.
장면 표시
이 상태에서 뷰에 장면을 표시하면 어떤 모습을 볼 수 있을까.
장면에 표시할 적절한 이미지를 준비합니다.
그림적절한 이미지(background.png)
그림을 프로젝트로 가져온 다음 장면으로 드래그합니다.
장면에 이미지를 배치하면 엘프 노드가 됩니다.
엘프 노드를 장면으로 확장하여 프레임과 일치시킵니다.
그림장면 속의 정령 노드
이 장면은 아이폰7(4.7인치)의 화면 크기다.
아래와 같이 무음기에 표시됩니다.
GameViewController.swiftimport UIKit
import SpriteKit
class GameViewController: UIViewController {
let gameScene = GameScene(fileNamed: "GameScene")
override func viewDidLoad() {
super.viewDidLoad()
if let skView = view as? SKView {
skView.presentScene(gameScene)
}
}
}
구축
시뮬레이터가 iPhone 7을 선택합니다.
중앙에 가까워 전체적으로 드러나지 않았다.
코드를 수정합시다. 아래와 같습니다.
GameViewController.swiftclass GameViewController: UIViewController {
let gameScene = GameScene(fileNamed: "GameScene")
override func viewDidLoad() {
super.viewDidLoad()
if let skView = view as? SKView {
gameScene?.scaleMode = .aspectFill
skView.presentScene(gameScene)
}
}
}
이제 장면과 보기를 완전히 일치시킬 수 있습니다.
Reference
이 문제에 관하여([SpriteKit] 장면 크기 및 장치 화면 크기 조정 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/imchino/items/d33c560f770dfcd3901f
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Swift3.0.1
Xcode8.2
iOS10.2
프로젝트 준비
iOS SKScene
에서 새 항목 만들기Single View Template
파일 이름 바꾸기ViewController.swift
(탐색 영역)
클래스 이름 GameViewController.swift
에서 ViewController
(편집기 영역) 으로 변경
뷰 컨트롤러의 루트 뷰를 GameViewController
로 변경(검사기 영역)
GameScene 클래스 정의
메뉴 모음에서 "File > New > File...> iOS > Cocoa Touch Class"를 선택하여 저장SKView
GameScene.swiftimport SpriteKit
class GameScene: SKScene {
// something to do
}
새 장면 파일 만들기
메뉴 모음에서 "File > New > File...> iOS > Resource > SpriteKit Scene"을 선택하여 저장합니다GameScene.swift
.
앵커 포인트 및 크기
그림새 장면 파일
크기(w:750, h:13334), 닻점(X:0.5, Y:0.5).
사이즈는 아이폰7의 4.7인치 상태이고 닻점은 장면 중앙의 십자인이다.
참고로 4.7인치 보기 컨트롤러의 보기 크기는 (X:375, Y:667)입니다.
이를 통해 알 수 있듯이 장면은 픽셀 단위, 보기 컨트롤러는 점 단위이다.
장면 표시
이 상태에서 뷰에 장면을 표시하면 어떤 모습을 볼 수 있을까.
장면에 표시할 적절한 이미지를 준비합니다.
그림적절한 이미지(background.png)
그림을 프로젝트로 가져온 다음 장면으로 드래그합니다.
장면에 이미지를 배치하면 엘프 노드가 됩니다.
엘프 노드를 장면으로 확장하여 프레임과 일치시킵니다.
그림장면 속의 정령 노드
이 장면은 아이폰7(4.7인치)의 화면 크기다.
아래와 같이 무음기에 표시됩니다.
GameViewController.swiftimport UIKit
import SpriteKit
class GameViewController: UIViewController {
let gameScene = GameScene(fileNamed: "GameScene")
override func viewDidLoad() {
super.viewDidLoad()
if let skView = view as? SKView {
skView.presentScene(gameScene)
}
}
}
구축
시뮬레이터가 iPhone 7을 선택합니다.
중앙에 가까워 전체적으로 드러나지 않았다.
코드를 수정합시다. 아래와 같습니다.
GameViewController.swiftclass GameViewController: UIViewController {
let gameScene = GameScene(fileNamed: "GameScene")
override func viewDidLoad() {
super.viewDidLoad()
if let skView = view as? SKView {
gameScene?.scaleMode = .aspectFill
skView.presentScene(gameScene)
}
}
}
이제 장면과 보기를 완전히 일치시킬 수 있습니다.
Reference
이 문제에 관하여([SpriteKit] 장면 크기 및 장치 화면 크기 조정 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/imchino/items/d33c560f770dfcd3901f
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import SpriteKit
class GameScene: SKScene {
// something to do
}
이 상태에서 뷰에 장면을 표시하면 어떤 모습을 볼 수 있을까.
장면에 표시할 적절한 이미지를 준비합니다.
그림적절한 이미지(background.png)
그림을 프로젝트로 가져온 다음 장면으로 드래그합니다.
장면에 이미지를 배치하면 엘프 노드가 됩니다.
엘프 노드를 장면으로 확장하여 프레임과 일치시킵니다.
그림장면 속의 정령 노드
이 장면은 아이폰7(4.7인치)의 화면 크기다.
아래와 같이 무음기에 표시됩니다.
GameViewController.swift
import UIKit
import SpriteKit
class GameViewController: UIViewController {
let gameScene = GameScene(fileNamed: "GameScene")
override func viewDidLoad() {
super.viewDidLoad()
if let skView = view as? SKView {
skView.presentScene(gameScene)
}
}
}
구축
시뮬레이터가 iPhone 7을 선택합니다.
중앙에 가까워 전체적으로 드러나지 않았다.
코드를 수정합시다. 아래와 같습니다.
GameViewController.swift
class GameViewController: UIViewController {
let gameScene = GameScene(fileNamed: "GameScene")
override func viewDidLoad() {
super.viewDidLoad()
if let skView = view as? SKView {
gameScene?.scaleMode = .aspectFill
skView.presentScene(gameScene)
}
}
}
이제 장면과 보기를 완전히 일치시킬 수 있습니다.
Reference
이 문제에 관하여([SpriteKit] 장면 크기 및 장치 화면 크기 조정 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/imchino/items/d33c560f770dfcd3901f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)