表題の件で少しハマったのでメモ。
画像を表示する方法
まずはプロジェクトに画像を追加します。
画像を追加したら、下のようにSKShapeNodeのfillTextureに画像をセットします。
import SpriteKit class GameScene: SKScene { override func didMove(to view: SKView) { let node = SKShapeNode(circleOfRadius: 100) node.fillTexture = SKTexture(image: #imageLiteral(resourceName: "ball")) addChild(node) } }
実行結果は下の通りです。
SKShapeNodeの枠線はあるけど画像は表示されません。
画像を表示するためには、下のようにfillColorをセットする必要があります。
class GameScene: SKScene { override func didMove(to view: SKView) { let node = SKShapeNode(circleOfRadius: 100) node.fillTexture = SKTexture(image: #imageLiteral(resourceName: "ball")) node.fillColor = UIColor.white // 今回追加 addChild(node) } }
公式ドキュメントによると、fillTextureはfillColorとブレンドして表示されます。
画像が表示されなかったのは、fillColorが透明だった為だと思います。
fillTexture - SKShapeNode | Apple Developer Documentation
fillColorを白以外の色にすると少し黒っぽい画像が表示されます。
node.fillColor = UIColor.lightGray