ios - SpriteKit位置困惑

标签 ios sprite-kit swift

在学习 SpriteKit 时,我正在制作一个带有 1 个按钮的场景。我不明白职位的运作方式。我读到的是 0,0 是左下角,默认 anchor 位于每个按钮 (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 

表示场景尺寸宽度高度。另外,我在主 Storyboard 中选中了“使用自动布局”。

enter image description here

最佳答案

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

在具有 4 英寸屏幕的 iPhone 上,您应将场景尺寸设置为 320x568,对于 3.5 英寸屏幕,应将场景尺寸设置为 320x480。但是,可以通过将此行添加到 View Controller 中场景的创建中来简化此操作。它将场景的大小设置为 View Controller View 的大小。

scene.size = skView.bounds.size

关于ios - SpriteKit位置困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24306048/

相关文章:

iOS 7 导航栏

ios - 不确定为什么 NSURLSession 超时

ios - 循环中单个像素的渲染速度

swift - 反正有日志功能吗?

android - swift/objective c 中是否有相当于 getServingUrl() 的方法?

iphone - 下载 iOS SDK 应用程序

ios - Xcode 粒子发射器编辑器不使用 ~ipad 图像?

ios - 带有 Helvetica 的 SKLabelNode 产生滞后

ios - Sprite Kit - 无法从对象获取自定义类数据

ios - 在 mmdrawercontroller 中快速隐藏导航栏