Skip to content

Instantly share code, notes, and snippets.

@flatpickles
Last active October 23, 2024 10:46
Show Gist options
  • Save flatpickles/413642637ebd0b00fe2b to your computer and use it in GitHub Desktop.
Save flatpickles/413642637ebd0b00fe2b to your computer and use it in GitHub Desktop.
SKShapeNode scales a fill texture by default, instead of repeating the pattern. This snippet extends SKShapeNode to support setting a tiled fill-texture.
import SpriteKit
extension SKShapeNode {
func setTiledFillTexture(imageName: String, tileSize: CGSize) {
let targetDimension = max(self.frame.size.width, self.frame.size.height)
let targetSize = CGSizeMake(targetDimension, targetDimension)
let targetRef = UIImage(named: imageName).CGImage
UIGraphicsBeginImageContext(targetSize)
let contextRef = UIGraphicsGetCurrentContext()
CGContextDrawTiledImage(contextRef, CGRect(origin: CGPointZero, size: tileSize), targetRef)
let tiledTexture = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
self.fillTexture = SKTexture(image: tiledTexture)
}
}
@Sunrise17
Copy link

can i cover ball with my texture image using this code?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment