一個完整的新手與Swift和SpriteKit所以請溫柔。CGContextDrawTiledImage當超過一定的尺寸時顯示黑色背景
我正在開發一個簡單的遊戲,目前它只不過是一個遊戲世界和一個只是向下移動直到撞到遊戲世界的邊緣而死的玩家(嘿!我在這裏學習並獲得瞭解遊戲物理等)。
無論如何,我有我的背景渲染與下面的代碼,我想創建一個半徑爲2000的圓形地圖,我想平鋪填充空間的背景圖像,下面的代碼創建平鋪背景:
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)
通知的coverageSize
我不得不創建覆蓋圓半徑的大小,如果我離開coverageSize
在停機坪的大小。 2000然後背景圖像正確顯示,只要我超過2000年,那麼背景顯示爲黑色。如果我將coverageSize
降到2000,那麼我會看到紋理邊緣與圓形邊緣之間的藍色背景。
任何人都可以看到我做錯了什麼?有沒有更好的方法來繪製平鋪在特定半徑內的圖像?