2016-10-14 11 views
1

私はあることを私SpriteKitベースのゲームモードを設定延伸されます。SpriteKitベース背景画像がひどく

sky = SKSpriteNode(imageNamed: "Sky") 
sky.position = CGPoint(x: 0, y: 0) 
sky.size.width = self.size.width 
sky.size.height = self.size.height 
sky.anchorPoint = CGPoint(x: 0.5, y: 0.5) 
sky.zPosition = 1 
self.addChild(sky) 

画像サイズは2732x2048です。それは4.7インチのiPhoneでひどく見えます。
全体が伸びて完成しました。
画像をトリミングする方法はありますが、iPhoneに合わせて伸ばしてはいけません(画像の同じアスペクトラジオ)。

私は他のスケールモードを試しましたが、動作しません。
誰かが今取るべき正しい行動が何であるか教えてもらえますか?

iPhoneのアートワークを提供すればどうなりますか?どのアートワークを使用するのか、どのアートワークのiPadを使用するのかなど、コードとどのように区別するのですか。

+0

iphoneのアートワークを提供している場合は、シーンサイズを – Knight0fDragon

+0

に変更することをお勧めします。次に、モデルを変更し、scaleMode aspectFillを使用しないか、作成しないでください。普遍的なアプリではなく、代わりにipadアプリとiphoneアプリ – Knight0fDragon

答えて

2

あなたは空のサイズを設定し、次のタスクを実行すべき行を削除します。

は、フレームとサイズを設定しないでください。代わりに、画像のサイズに設定し、それはトリミングではなく、スケールます:

sky.size = sky.texture.size 

このコードは、その幅と高さを設定し、あなたが持っている2行の代替になります。

のみ機能あなたの画像サイズはデフォルトのサイズ(あなたがそれを内製サイズ)また

で適切に収まる場合は、そのようなあなたのアプリはユニバーサル作ることができます。これを見てみましょう:iOS Universal Device App with SpriteKit, how to scale nodes for all views?。次に、あなたの背景を1024x1024(またはすべてのデバイスサイズのアスペクト比に合わせるのに十分な大きさ)にするだけです。これは、同じサイズではないデバイス上でその一部を切り抜きますが、異なるデバイスでは縦横比が変更または拡大されません。

+0

これは何もしないだろう、空のデフォルトではテクスチャサイズ – Knight0fDragon

+0

@ Knight0fDragon右です。 OPはまだ – Nik

+0

のサイズを設定する必要はありませんが、今は彼がipadのサイズを取っていて、それを押しつぶそうとしています。 – Knight0fDragon