gpt4 book ai didi

swift - Spritekit SKTexture(SKTexture 中的 : CGRect, 矩形)问题

转载 作者:行者123 更新时间:2023-11-30 11:49:48 24 4
gpt4 key购买 nike

我有一个问题,在过去的几个小时里我一直在绞尽脑汁。我正在创建一个平铺 map ,作为平铺的纹理,我有一些 Sprite 表。

我可以使用以下 spritesheet 来演示我的问题: spritesheet

现在我使用 SKtexture(rect: , in:) 方法从 spritesheet 中获取图 block 纹理。我的问题是,当我使用这种方法时,不知怎的,似乎存在一个非常小的偏移量,因此,当我想要渲染一张充满左下 Sprite (只是雪)的 map 时,我可以看到一小部分平铺在其上方。

我可以用以下屏幕截图来演示这一点:

example render

如您所见,图 block 行之间有一些蓝线。这是我在示例中使用的代码,它是我使用的tilemap解析器的摘录,但它显示了相同的行为。

let source = SKTexture(imageNamed: "snowiceCor")
let superNode = SKNode()
let sourceWidth = source.size().width
let sourceHeight = source.size().height
let tileSize: CGFloat = 32.0
let tileX: CGFloat = 0
let tileY: CGFloat = 8
for i in 0...8 {
for j in 0...8 {
let rX = (tileSize * tileX) / sourceWidth
let rY = CGFloat(1) - ((tileSize * tileY) / sourceHeight)
let rW = tileSize / sourceWidth
let rH = tileSize / sourceHeight
let rect = CGRect(x: rX, y: rY, width: rW, height: rH)
let texture = SKTexture(rect: rect, in: source)
let node = SKSpriteNode(texture: texture, color: .clear, size: CGSize(width: tileSize, height: tileSize))
superNode.addChild(node)
node.zPosition = 99
node.position.x = CGFloat(i*32)
node.position.y = CGFloat(j*32)
}
}
addChild(superNode)
superNode.setScale(2)

我希望有人能帮助我。

最佳答案

蓝线可能正在启动抗锯齿功能。您可以通过在纹理上设置“filteringMode = .nearest”来关闭此功能。或者(如果您想要抗锯齿),您可以用透明像素填充图 block )。

关于swift - Spritekit SKTexture(SKTexture 中的 : CGRect, 矩形)问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48458941/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com