Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/117.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios SKShapeNode位置与地面对齐_Ios_Swift_Sprite Kit_Sknode - Fatal编程技术网

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,它可能设置为“填充不适合”