Skip to content

Game View

WooSeok Suh edited this page Jul 22, 2021 · 6 revisions

2021-07-08

by Song

Step 1 - 모든 iPhone 기종에 대응하는 오토레이아웃

오토레이아웃
  • 기기에 따라 가장 가변적인 window height를 기준으로 View들의 크기를 잡음
    • Game View (PerspectiveView, Time Bar View, Unit Stacks 포함): 전체 View 대비 0.46만큼의 높이
    • Direction Buttons: 전체 View 대비 0.15만큼의 높이
    • Score Label: 전체 View 대비 0.15만큼의 높이
  • 각 요소가 가지는 높이에 대비하여 너비 설정 (Aspect Ratio 활용)

2021-07-09

Step 2 - 남은 시간을 나타내는 time bar 만들기

UIProgressView 활용하기

  • AutoLayout height constraints를 조정하여 progressView 높이 변경
  • 모서리 눌림 현상 발생
눌린 진행바
  • progressView를 subclassing, layoutSubviews를 override하여 layer의 mask를 새로 그려주는 것으로 해결
override func layoutSubviews() {
    super.layoutSubviews()
  	let cornerRadius = self.bounds.height * 0.5 // 둥근 모서리
    let maskLayerPath = UIBezierPath(roundedRect: self.bounds, cornerRadius: cornerRadius)
    let maskLayer = CAShapeLayer()
    maskLayer.frame = self.bounds
    maskLayer.path = maskLayerPath.cgPath
    self.layer.mask = maskLayer
}
모서리를 둥글게 둥글게

2021-07-16

by seok

Step 3

게임 난이도 조정

  • 기존 고정 난이도 기준을, memberCount에 따라 동적으로 변경
func isTimeToLevelUp() -> Bool {
        
    guard memberCount < GameSetting.maxUnitCount else { return false }
        
    switch memberCount {

    case 2:
        return answerCount >= memberCount * 20
    case 3:
        return answerCount >= memberCount * 30
    case 4:
        return answerCount >= memberCount * 50
    default:
        return answerCount >= memberCount * 60
    }
}
Clone this wiki locally