
솝트 애니메이션 스터디 최종 과제 때 만들었던 게임인데
간단하고 Swift를 아시는 분들이라면 쉽게 따라하실 수 있을 것 같아서
소개해봅니다!
🎮 만들고 싶었던 것..!
크롬에서 인터넷 연결이 끊기면 나오는 공룡 게임 아시나요…??

약간 서비스 앱에서도 서비스와 관련된 미니게임 하는 view가 있으면 재밌을 것 같아서…!
간단한 픽셀 게임을 만들어 보았습니다 !!
🌏 시연 영상
📁 간단한 코드 설명

SpriteKit는 Apple이 제공하는 2D 게임 개발용 프레임워크인데요.
이는 개발자가 고성능의 2D 게임을 효율적으로 개발할 수 있도록 지원하고 있어요!
여기서는 UILable, UIImageView 대신에 SKSpriteNode, SKLabelNode를 사용하고 있습니다.
[ SKSpriteNode ]
- SKSpriteNode는 스프라이트 노드를 나타내는 클래스입니다. 스프라이트는 2D 이미지로, 게임의 캐릭터, 배경, 아이템 등을 표현하는 데 주로 사용합니다.
- SKSpriteNode는 이미지나 색상과 크기를 사용하여 직사각형 영역을 채울 수 있습니다. 또한 텍스처(이미지)를 노드에 적용할 수 있으며, 이 텍스처는 노드의 크기, 회전, 위치 등을 조절함으로써 다양한 방식으로 화면에 표시될 수 있습니다.
- 또한, 물리 속성을 갖추고 있어, SKPhysicsBody를 사용하여 노드에 중력, 충돌 등의 물리 효과를 적용할 수 있습니다.
override func didMove(to view: SKView) {
// 배경 이미지 크기 조정
let aspectRatio = background1.size.width / background1.size.height
background1.size.height = size.height
background1.size.width = size.height * aspectRatio
// 배경 이미지 위치 설정
background1.anchorPoint = CGPoint.zero
background1.position = CGPoint(x: 0, y: 0)
// 배경 이미지 zPosition 설정
background1.zPosition = -1
// 배경 이미지 추가
addChild(background1)
// 점수 설정
scoreLabel.text = "Score: 0"
scoreLabel.fontSize = 20
scoreLabel.fontColor = .black
scoreLabel.position = CGPoint(x: size.width * 0.15, y: size.height * 0.9)
addChild(scoreLabel)
// player 세팅
let scale = 60 / player.size.width
player.size = CGSize(width: 60, height: player.size.height * scale)
player.position = CGPoint(x: size.width * 0.1, y: (size.height * 0.3)-25)
addChild(player)
startGameButton.text = "Game Start"
startGameButton.fontSize = 30
startGameButton.fontColor = .black
startGameButton.position = CGPoint(x: size.width / 2, y: size.height / 2)
addChild(startGameButton)
gameOverLabel.text = "Game Over"
gameOverLabel.fontSize = 65
gameOverLabel.fontColor = .black
gameOverLabel.position = CGPoint(x: frame.midX, y: frame.midY+20)
addChild(gameOverLabel)
gameOverLabel.isHidden = true
}
didMove 메서드는 게임 화면이 처음 표시될 때 호출됩니다. 여기서 배경 이미지의 크기와 위치를 설정하고, 플레이어의 크기와 위치를 설정하며, 점수 라벨을 초기화하고, 게임 시작 버튼과 게임 오버 라벨을 설정하고 있어요 !!
그리고 startGame 함수를 만들어서

배경이미지가 움직이도록 애니메이션을 적용하고, 플레이어의 시작 위치를 설정하고, 계속해서 적을 생성해주는 함수를 호출해줍니다.
더 자세한 코드가 궁금하시다면 깃헙에서 전체 코드를 볼 수 있습니다.
😺 Github 코드 링크 : https://github.com/LeeJoEun-01/Animation-Study
GitHub - LeeJoEun-01/Animation-Study: Swift Animation Study
Swift Animation Study. Contribute to LeeJoEun-01/Animation-Study development by creating an account on GitHub.
github.com

깃허브에 들어가시면 다른 애니메이션 스터디 결과물이 있고
왼쪽 사진처럼 별 다른 프레임워크 필요 없이 더 간단하게 게임을 만들 수 있습니다.
블로그 읽어주셔서 감사합니다 : )
'iOS > UIKit' 카테고리의 다른 글
@Invalidating과 didSet의 차이 (0) | 2024.12.07 |
---|