Ios SKShapeNode位置与地面对齐
我只是想画一个矩形,然后把它放在屏幕的左下角Ios SKShapeNode位置与地面对齐,ios,swift,sprite-kit,sknode,Ios,Swift,Sprite Kit,Sknode,我只是想画一个矩形,然后把它放在屏幕的左下角 var rectW:CGFloat = CGFloat(200.0) var rectH:CGFloat = ceil(self.frame.height * 0.15) var rect = SKShapeNode(rectOfSize: CGSize(width: rectW, height: rectH)); let posX:CGFloat = 0.0 + (rect.frame.width / 2)
var rectW:CGFloat = CGFloat(200.0)
var rectH:CGFloat = ceil(self.frame.height * 0.15)
var rect = SKShapeNode(rectOfSize: CGSize(width: rectW, height: rectH));
let posX:CGFloat = 0.0 + (rect.frame.width / 2)
let posY:CGFloat = self.frame.height - (self.frame.height - rect.frame.height)
rect.position = CGPointMake(posX,posY)
rect.fillColor = SKColor(red: 0.0, green: 0.0, blue: 0.0, alpha: 1.0)
rect.lineWidth = 1
self.addChild(rect)
问题是,尽管我相信所有的数学都是正确的,但屏幕下方的矩形大约是38点/像素,正如你从白色边框下方的图像中看到的那样,显示了限制
这里是位置、高度和宽度的输出,供您参考
PosX: 100.5
PosY: 117.0
Rect Width: 201.0
Rect Height: 117.0
Frame Height: 768.0
Frame Weight: 1024.0
如果我简单地画这条线,但加上38点/像素,它就行了,但为什么呢?我有什么遗漏吗
let posY:CGFloat = self.frame.height - (self.frame.height - rect.frame.height) + 38
我通过以下两个答案找到了答案: 问题在于GameSecene.sks的大小设置不同 打开GameSecene.sks并转到屏幕右上角的第三个框“Show SKNodeInspector” 然后将尺寸设置为320 x 568
保存然后运行。他应该在工作 检查场景的scalemode,它可能设置为“填充不适合”