2017-09-15 4 views
8

iPhone X가 며칠 전에 릴리스됩니다. 내 게임 중 하나를 새 휴대 전화로 업데이트하려고합니다. 그러나 SpriteKit 장면이있는 장면에서는 장면이 전체 화면을 채울 수 있도록 확장되지 않습니다.SpriteKit Scene이 iPhone X의 전체보기에 맞지 않습니다

GameScene *scene = [GameScene unarchiveFromFile:@"GameScene"]; 
scene.scaleMode = SKSceneScaleModeFill; 
// skView is basically self.view casted to SKView 
[skView presentScene:scene]; 

SKS 파일에있는 장면의 크기는 최대 2048x1536입니다 : 여기

장면을 표시하는 코드입니다.

Picture

빨간색 부분은 장면의 내용이다 :이처럼 보이는 것입니다

. 한 가지 흥미로운 점은 배경이 파란색과 회색으로 올바르게 표시된다는 것입니다.

어쨌든이 문제를 해결하려면 화면을 채우기 위해 장면을 늘리는 것이 좋습니다 (아무 것도 덮지 않습니다. 둥근 모서리와 노치)에 의해

답변

0

아이폰 X 화면을 지원하는 SpriteKit 게임 청소기 방법이있을 수 있습니다,하지만 난 GameViewController에 대한 다음과 같은 확장자로 나온 :

import SpriteKit 

class GameViewController: UIViewController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     if let view = self.view as? SKView { 
      if let scene = SKScene(fileNamed: "yourscenefilename") { 
       // Set the scale mode according to the device 
       if isIphoneX { 
        scene.scaleMode = .resizeFill 
       } else { 
        scene.scaleMode = .aspectFill 
       } 

       // Any additional setup... 
       ... 

       // Present the scene 
       view.presentScene(scene) 
      } 
     } 
    } 
} 

extension GameViewController { 
    var isIphoneX: Bool { 
     let aspectRatio = Double(view.frame.width/view.frame.height) 
     let iphoneXAspectRatio = 2436.0/1125.0 
     return (aspectRatio == iphoneXAspectRatio) ? true : false 
    } 
} 

은 기본적으로는 설정 화면의 가로 세로 비율에 따라 가로 세로 비율을 조정할 수 있습니다. iPhone X 가로 세로 비율 인 경우 크기 조절 모드를 "resizeFill" 그렇지 않으면 클래식 사각형 iPhone 및 iPad 화면에서 "aspectFill"모드를 사용하십시오.

resizeFill 모드는 장면의 내용을 왜곡하거나 잘라 내지 않고 전체 iPhone X 화면을 채울 수있는 유일한 방법입니다. 게임에 HUD 노드가 있다면 (스코어, 카운터, 버튼 등), 변경해야합니다!

override func didMove(to view: SKView) { 
    // Any additional setup... 
    ... 

    if isIPhoneX { 
     hud = SKReferenceNode(fileNamed: "yourIPhoneXHUDScene") 
    } else { 
     hud = SKReferenceNode(fileNamed: "yourStandardHUDScene") 
    } 

    cam.addChild(hud) 
} 

시뮬레이터의 모든 아이폰의 화면 크기 (3.5 ", 4", 4.7 ", 5.5", 5.8 ")와 테스트. 내가 망막 아이 패드 크기 gamescenes (처리하는 방법을 잘 모르겠어요하지만 2048 x 1536의)은 엑스 코드에서 설정합니다.

0

aspectFill 나를 위해 잘 작동합니다. 장면의 왼쪽과 오른쪽에 잘립니다 있지만 왜곡 아닙니다.

을 나는 SKView 내가 제시 한 후 자동 레이아웃에 자동으로 크기가 조정 및 한 내 aspectFill을 사용한 장면