본문 바로가기
ios

[ios-Swift] Sprite Kit

by codingcampus 2024. 10. 11.
반응형
SMALL

 

SpriteKit?

SKScene는 SpriteKit 프레임워크의 일부로서, Apple이 제공하는 것입니다. 제 정보의 기준은 2022년 1월이므로 그 이후의 정확한 발표 연도는 알 수 없습니다. 그러나 SpriteKit은 iOS 7에서 처음 소개되었으며, SKScene는 그 일부로 iOS 7에서 사용할 수 있게 되었습니다. 그 후로도 SpriteKit 및 SKScene에 대한 업데이트가 계속되었을 것으로 예상됩니다. 최신 정보를 얻으려면 Apple의 공식 문서나 관련 개발자 자료를 확인하는 것이 좋습니다.

 

 

SpriteKit은 물리 엔진, 애니메이션 시스템, 오디오 지원 등 다양한 기능을 제공하여 게임 개발자가 효과적으로 게임을 디자인하고 개발할 수 있도록 돕습니다. SKScene은 이러한 기능들을 구현하고 관리하는 데 중요한 역할을 합니다.예를 들어, SKScene을 사용하여 게임 화면을 만들고, 게임 객체들을 배치하고, 애니메이션을 적용하며, 사용자 입력을 처리하는 등의 작업을 할 수 있습니다. 이를 통해 개발자는 게임의 렌더링 및 상호 작용에 대한 세부적인 제어를 얻을 수 있습니다.

 

자세한 내용 및 사용법은 Apple의 공식 문서나 SpriteKit 프레임워크 관련 자료에서 찾아볼 수 있습니다.

ios에 최적화, Metal API를 지원하여 빠른 속도

ios의 라이브러리를 자유롭게 가져다 쓸 수 있다.

고수준 언어인 Swift로 코딩가능

간단한 2d게임을 빠르게 개발

swift에 대한 학습도 수행가능

Apple 생태계 밖에서는 사용불가

 

SpriteKit 구조

일반 앱과는 달리 단 하나의 뷰컨트롤러만 사용

씬 위에 노드를 올린 뒤 노드를 움직여줌

뷰컨트롤러 위에서 미리 준비 되어 있는 씬을 바꿈으로써 화면 전환

 

SpriteKit 구성요소

SpriteKit의 주요 플레이어는 다음의 세 종류가 있다.

SKView : Sprite Kit의 기본 뷰이다. 이 뷰는 각 장면 컨텐츠를 렌더링하여 표시하는 일을 한다. 이는 UIView를 서브클래싱하여 만들어진다.

SKScene : 뷰는 장면들을 전환하여 보여줄 수 있다. SKScene은 각 장면에 해당하는 클래스이다. 장면은 화면에 등장하는 컨텐츠 구성요소인 Node들을 관리하게 된다. 또한 사용자 터치 이벤트를 이곳에서도 처리할 수 있다.

SKNode : 장면 내의 배경, 캐릭터, UI요소 등은 모두 SKNode로 표현된다. SKNode는 노드트리를 구성하며, 각각의 노드는 액션(SKAction)을 실행하여 애니메이팅 된다고 보면 된다.

그리고 장면 내 각 노드들이 물리적인 상호작용 (충돌, 중력의 적용, 힘을 받아 움직이거나 회전)을 하는 경우라면 노드의 physicsBody 속성을 정의하고, 그 속성들을 조정할 수 있다.

 

SpriteKit 노드 종류 (SKNode)

모든 노드는 SKNode의 하위 클래스!

SKLabelNode : 텍스트 label을 표시하는 노드. 글자색, 글자체도 지정 가능

SKSpriteNode : 이미지를 표시하는 노드. 직접 포토샾 같은 걸로 그림을 그려서 만들수 있음.

SKShapeNode : 도형을 표시하는 노드. 직접 코어 그래픽스를 이용해서 만들수 있음.

SKEmitterNode : 특수효과를 표시하는 노드. 파티클 이미터를 추가할 수 있음.

SKEffectNode : 특수효과를 표시하는 노드. 코어 이미지 필터를 자식노드에 적용.

SKVideoNode : 비디오를 재생해주는 노드.

반응형
LIST