SKTexture in:纹理产生空结果

时间:2016-10-23 15:03:48

标签: swift sprite-kit sprite-sheet sktexture

我试图剪切精灵表,由于某些原因,我的结果总是空的。

有人会认为下面会给你一半左下角的图像。

let allTex = SKTexture(imageNamed: "zelda")
let standTex = SKTexture(rect: CGRect(x: 0, y:0, width: 1/2, height: 1/2), in: allTex)

然而,这会得到空的结果。

1 个答案:

答案 0 :(得分:1)

问题是CGRect使用了错误的初始化程序。有人会认为下面会给你一半左下角的图像。

let allTex = SKTexture(imageNamed: "zelda")
let standTex = SKTexture(rect: CGRect(x: 0, y:0, width: 1/2, height: 1/2), in: allTex)

然而,由于类型推断,结果应该是一个int,然后是1/2的一个不幸的舍入为0,这给出了空结果。要解决这个问题,请执行此操作:

let allTex = SKTexture(imageNamed: "zelda")
let standTex = SKTexture(rect: CGRect(x: 0, y:0, width: 1.0/2.0, height: 1.0/2.0), in: allTex)

这会强制计算结果为0.5,然后最终使用CGRect并使用精确的浮点数而不是舍入的int。