我试图剪切精灵表,由于某些原因,我的结果总是空的。
有人会认为下面会给你一半左下角的图像。
let allTex = SKTexture(imageNamed: "zelda")
let standTex = SKTexture(rect: CGRect(x: 0, y:0, width: 1/2, height: 1/2), in: allTex)
然而,这会得到空的结果。
答案 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。