본문 바로가기

SpriteKit

SpriteKit을 이용한 수박게임 만들기

scene내부에 중력과 탄성 등을 이용해 가장 간단히 만들 수 있는 게 무엇이 있을까 생각하다 '수박게임'으로 정했다.

 

 

  • 기존에 벽이라는 skSpriteNode를 생성해서 4방향에 벽을 배치했었다.
    • scene의 frame으로 physicsBody를 주는 방법이 있다.
private func configureBoundary() {
        
    let boundary = SKPhysicsBody(edgeLoopFrom: self.frame)
    boundary.categoryBitMask = PhysicsCategory.wall.bitmask
    boundary.collisionBitMask = PhysicsCategory.all.bitmask
    boundary.restitution = 0.3
    boundary.isDynamic = true
        
    self.physicsBody = boundary
}
  • restitution은 탄성의 정도라고 생각하면 된다. (0 ~1.0까지의 값이고 기본값은 0.2다)
    • 저번의 벽돌깨기에서는 벽이랑 충돌을 했을 때 벡터 값을 반사시켜 주는 방식으로 반사를 표현했다. 하지만 collisionBitMask에 설정을 하면 물리 엔진에 의존한 표현이 가능해진다.

 

 

  • gameOverLine을 추가하다 보니 해당 line은 중력의 영향을 받으면 안 되기 때문에 중력 영향을 꺼준다.
line.physicsBody?.affectedByGravity = false

 

 

 

 

코드는 깃허브에 올려놓았다.

https://github.com/snowy-summer/watermelon-PracSpriteKit/tree/main

 

GitHub - snowy-summer/watermelon-PracSpriteKit

Contribute to snowy-summer/watermelon-PracSpriteKit development by creating an account on GitHub.

github.com

 

'SpriteKit' 카테고리의 다른 글

SpriteKit을 이용한 "벽돌 깨기" 만들기  (0) 2024.06.23
SpriteKit 시작해보기  (0) 2024.06.21