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年を過ぎると背景が黒色に表示されます。 coverageSize
を2000のままにしておくと、テクスチャのエッジとサークルのエッジの間に青色の背景が表示されます。
私が間違っていることを誰も見ることができますか?特定の半径内にタイル張りされた画像を描画するには良い方法がありますか?