を失うことなく、私はSKSpiteNodeを持っている:は品質
private var btnSound = SKSpriteNode(imageNamed: "btnSound")
は今、私は(やり過ぎ本当に)2048×2048ピクセルのサイズではAdobe Illustratorでこの画像を作ったので、それは優れた分解能を持っています。私の問題は、画像のサイズを設定したときに、画像のラインがぎざぎざになったり、ギザギザになったりします...滑らかではありません。 イラストレーター(スクリーンショット)で、これは私が試してみました
物事アプリ(スクリーンショット)の画像があるとき
btnSound.position = CGPoint(x: self.frame.width * 1/5 , y: self.frame.height * (5.2/8))
btnSound.size.width = self.frame.width * 1/7
btnSound.size.height = btnSound.size.width
btnSound.zPosition = 1
self.addChild(btnSound)
これはイメージです:
これは私がそれをサイズ方法です。
- 画像PNG 作る画像PDF
- を作ります
- 私はUIGraphicsBeginImageContext方法に精通していないですけれども、それ300 DPI
- シミュレータ/デバイス上のファイル名を指定して実行(iPhone7)
btnSound.setScale(preDetermineScale)
は、以下の機能を使用して作る、PNG 72 DPIを作ります。これで画像がぼやけてしまいます。相続人は、コードと結果の画像:私は自分が教えと私のように正しくこれを行う方法を学ぶのが大好きですので、プログラミングの全体の多くを行っていないよ
func resizeImage(image: UIImage, newWidth: CGFloat) -> UIImage? { let scale = newWidth/image.size.width let newHeight = image.size.height * scale UIGraphicsBeginImageContext(CGSize(width: newWidth, height: newHeight)) image.draw(in: CGRect(x: 0, y: 0, width: newWidth, height: newHeight)) let newImage = UIGraphicsGetImageFromCurrentImageContext() UIGraphicsEndImageContext() return newImage } func setup() { let btnSoundImg = UIImage(named: "btnSound") let resizeBtnSoundImage = resizeImage(image: btnSoundImg!, newWidth: self.frame.width * 1/7) let btnSoundTexture = SKTexture(image: resizeBtnSoundImage!) btnSound.texture = btnSoundTexture btnSound.position = CGPoint(x: self.frame.width * 1/5 , y: self.frame.height * (5.2/8)) btnSound.size.width = self.frame.width * 1/7 btnSound.size.height = btnSound.size.width btnSound.zPosition = 1 self.addChild(btnSound) }
私は、UIImageViewsのサイズを変更するためのソリューションを見つけるだけです。
私が持っていたもう一つの考えは、ボタンのためだけに使用されているspriteNodeであってはならないかもしれないという考えでしたか?
を与えるスケーリングするためのPhotoshopの賢明な使用されているようにあなたのアプリで? – Nik
それはそれを修正するようではありません。私はそれらを大きくするので、後でもっと高い解像度でそれらを必要とするなら、私はそれらを調整することができます。また、デバイスの種類によって異なります。 – Steve
btnSoundイメージにはどのような拡張機能がありますか?また、私はSpriteKitのスプライトに固執することをお勧めします。 UIKit要素を使用するには、いくつかの追加作業が必要です。別のシーンに遷移するときには、(ノードツリーの一部であるノードとは異なり)シーンにではなくビューに追加されるため、UIKit要素を手動で削除する必要があります。 – Whirlwind