2017-02-19 3 views
3

iPhone用にSpritekitを使ってXcodeでゲームを開発しています。また、node.setScale()メソッドを使用することで、すべてのiPhoneデバイスで同じで素晴らしいものに見えます。今私はそれをユニバーサルにしてiPad上で実行可能にしたい。これを簡単にどうやって行うのですか?スケールの式がありますか?SpritekitフルサイズのゲームをiPadに変換

if UIDevice.current.userInterfaceIdiom == .pad { 
     sscale = frame.size.height/768 
    }else{ 
     sscale = frame.size.height/320 
    } 

そして私はnode.setScale(sscale)を作る全てのノードのために:私はすでに試した何

は、このでした。

これは

...のiPad miniのために働いていない、それはiPadの空気から違って見える...すなわちノードサイズと位置任意の助けを終わりますか?

+0

を助け

希望、あなたはあなたのためにすべてをスケーリングことになる 'scene.scaleMode = .fill'を設定してみてくださいましたか? – ziya

答えて

1

SKCameraNodeを使用している場合は、カメラを拡大縮小してシーン全体を拡大/縮小できます。

// SKCameraNode+Extensions.swift 
extension SKCameraNode { 
    func updateScaleFor(userInterfaceIdiom: UIUserInterfaceIdiom) { 
     switch userInterfaceIdiom { 
      case .phone: 
       self.setScale(0.75) 
      case .pad: 
       self.setScale(1.0) 
      default: 
       break 
     } 
    } 
} 

シーンを初期化するときに呼び出します。

guard let camera = self.childNode(withName: "gameCamera") as? SKCameraNode else { 
    fatalError("Camera node not loaded") 
} 

// Update camera scale for device/orientation 
let userInterfaceIdiom = UIDevice.current.userInterfaceIdiom 
camera.updateScaleFor(userInterfaceIdiom: userInterfaceIdiom) 
4

基本的に2つのオプションがあります。

1)シーンサイズを1024×768(ランドスケープ)または768×1024(ポートレート)に設定し、スケールモードのデフォルトの.aspectFillを使用します。これはXcode 7(iPadの解像度)のデフォルト設定でした。

通常、iPadの上部/下部(横)または左/右(縦)に余分な背景を表示するよりも、

のiPad上でより多く表示され、ゲームの

例:

アルトスアドベンチャー、レオフォーチュン、リンボー、ライン禅、モダンコンバット5

2)AppleがiPhoneにXcodeの8のデフォルトのシーンのサイズを変更6/7(750×1334-Portait、1337×750-Landscape)。この設定はiPad上でゲームをトリミングします。

2つのオプションを選択することはあなた次第であり、あなたが作っているゲームによって異なります。私は通常、オプション1を使用してiPadsでより多くの背景を表示することを好みます。かかわらず、シーンサイズのスケールモードの通常のベストなあなたはこのよう

if UIDevice.current.userInterfaceIdiom == .pad { 
    // adjust some UI for iPads 
} 
それを行うことができ、デバイスのラベルなどのような特定の事柄を調整するには、デフォルトの.aspectFillの設定や.aspectFit

に残され

異なるデバイスのシーンやノードのサイズ/スケールを手動で変更するランダムなハッキングを試みることはありませんが、xCode/SpriteKitを使用する必要があります。あなたは(アスペクト比についてあまり心配していない)のノードを拡張して喜んでいる場合、これは

関連する問題