Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/102.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 SpriteKit位置混淆_Ios_Sprite Kit_Swift - Fatal编程技术网

Ios SpriteKit位置混淆

Ios SpriteKit位置混淆,ios,sprite-kit,swift,Ios,Sprite Kit,Swift,在学习SpriteKit时,我用1个按钮制作了一个场景。我不了解职位的工作方式。我读到的是,0,0是左下角,默认的锚点在每个按钮“代码>(0.5,0.5)< /代码>的中间。场景是scene.scaleMode=.AspectFill。如果我写: self.playButton.position = CGPointMake(self.playButton.size.width/2,CGRectGetMidY(self.frame)) self.addChild(self.play

在学习SpriteKit时,我用1个按钮制作了一个场景。我不了解职位的工作方式。我读到的是,0,0是左下角,默认的锚点在每个按钮“代码>(0.5,0.5)< /代码>的中间。场景是
scene.scaleMode=.AspectFill
。如果我写:

    self.playButton.position = CGPointMake(self.playButton.size.width/2,CGRectGetMidY(self.frame))
    self.addChild(self.playButton)
我得到了下面截图中的内容。 如果我将
playbutton.position.x
设置为
self.playbutton.size.width/2
,那么我会假设它位于屏幕的左边缘。不是有点离奇地离开屏幕。我已经阅读了几天关于尺寸的文档,但我似乎仍然不理解它。我还明确设置了:

    self.size.width = 768
    self.size.height = 1024 
表示场景的
大小
宽度
高度
。我还检查了主情节提要中的“使用自动布局”


如果将场景的缩放模式更改为
.AspectFit
,您将能够快速看到问题所在。您为场景设置的分辨率与设备的分辨率完全不同。事实上,当我回答你的最后一个问题时,我假设你使用768x1024分辨率意味着你在为iPad开发,这是正确的分辨率

在4英寸屏幕的iPhone上,您应该将场景大小设置为320x568,对于3.5英寸屏幕,设置为320x480。但是,通过在视图控制器中创建场景时添加此行,可以简化此操作。它将场景的大小设置为视图控制器视图的大小

scene.size = skView.bounds.size

使用“sprite kit”更新了问号,以便快速更容易地发现:将场景的
scaleMode
设置为
SKSceneScaleModeResizeFill
——这样,它将始终与视图大小相同。