ein kompletter Neuling mit Swift und SpriteKit also bitte sanft sein.CGContextDrawTiledImage Anzeige schwarzen Hintergrund wenn über eine bestimmte Größe
Ich entwickle ein einfaches Spiel, im Moment ist es nichts weiter als eine Spielwelt und ein Spieler, der einfach runterfährt, bis er an den Rand der Spielwelt gerät und dann stirbt (hey! Ich lerne hier und bekomme um Spielphysik usw. zu verstehen).
Wie auch immer, ich habe meine Hintergrund-Rendering mit dem folgenden Code, ich möchte eine Kreiskarte mit einem Radius von 2000 erstellen, und das Hintergrundbild möchte ich gekachelt, um den Raum zu füllen, der folgende Code erstellt den gekachelten Hintergrund:
let coverageSize = CGSizeMake(8000, 8000)
let textureSize = CGRectMake(0, 0, 599, 519)
let backgroundCGImage = UIImage(named: "background")?.CGImage
UIGraphicsBeginImageContext(CGSizeMake(coverageSize.width, coverageSize.height))
let context = UIGraphicsGetCurrentContext()
CGContextDrawTiledImage(context, textureSize, backgroundCGImage)
let tiledBackground = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
let backgroundTexture = SKTexture(image: tiledBackground)
let backgroundTiles = SKSpriteNode(texture: backgroundTexture)
backgroundTiles.yScale = 0.5
backgroundTiles.xScale = 0.5
let cropNode = SKCropNode()
let mask = SKShapeNode(circleOfRadius: 2000)
mask.fillColor = UIColor(red: 0/255, green: 0/255, blue: 255/255, alpha: 1.0)
cropNode.maskNode = mask
cropNode.addChild(backgroundTiles)
self.world?.addChild(cropNode)
Beachten Sie die Größe des coverageSize
, die ich je hatte zu schaffen, die Größe des Kreisradius zu bedecken, wenn ich die coverageSize
an Schürze verlassen. 2000 dann wird das Hintergrundbild korrekt angezeigt, sobald ich über 2000 gehe dann wird der Hintergrund als schwarze Farbe angezeigt. Wenn ich die coverageSize
auf 2000 belasse, bekomme ich den blauen Hintergrund zwischen der Kante der Textur und der Kante des Kreises.
Kann jemand sehen, was ich falsch mache? und gibt es eine bessere Möglichkeit, ein Bild innerhalb eines bestimmten Radius zu zeichnen?