Swift 3 初学者 - 在场景中定位资产
Swift 3 Beginner - Position Assets in Scene
我是 Swift 3 和一般编程的完全初学者,所以这将是一个非常基础的问题。
我一直在学习教程,目前正在使用 CGPoint 定位 SpriteNode。本教程推荐以下方法将节点定位在屏幕底部的中央:
Ground.position = CGPoint(x: self.frame.width / 2, y: 0)
但是,这会导致它停留在屏幕的右上角。
当我使用以下代码时:
Ground.position = CGPoint(x: 0 - self.frame.width / 2, y: 0 - self.frame.height / 2)
它按预期定位在底部中心。
我不明白为什么会发生这种情况,因为此时教程中几乎没有其他内容会导致错误。
将场景的 anchorPoint
设置到 didMove(toView: SKView)
开头的左下角(或 GameViewController
):
scene.anchorPoint = CGPoint(x: 0, y: 0)
请记住,您放置在场景中的所有内容都是基于 anchorPoint
放置的。所以对于这个anchorPoint
,场景的原点是左下角。
另请注意,如果您使用 .AspectFill
作为 sceneScaleMode
,则不必使用 self.frame
,而是将场景大小设置为 768x1024(纵向)/ 1024x768(风景)则只需使用场景大小内的数值。
此外,将场景 anchorPoint
设置为中心还有一些好处:
scene.anchorPoint = CGPoint(x: 0.5, y: 0.5)
这使得场景更容易适合 iPad 大小以及 iPhone,并且还简化了居中节点。
查看此 link 了解有关使您的应用程序通用的更多信息:
我是 Swift 3 和一般编程的完全初学者,所以这将是一个非常基础的问题。
我一直在学习教程,目前正在使用 CGPoint 定位 SpriteNode。本教程推荐以下方法将节点定位在屏幕底部的中央:
Ground.position = CGPoint(x: self.frame.width / 2, y: 0)
但是,这会导致它停留在屏幕的右上角。
当我使用以下代码时:
Ground.position = CGPoint(x: 0 - self.frame.width / 2, y: 0 - self.frame.height / 2)
它按预期定位在底部中心。
我不明白为什么会发生这种情况,因为此时教程中几乎没有其他内容会导致错误。
将场景的 anchorPoint
设置到 didMove(toView: SKView)
开头的左下角(或 GameViewController
):
scene.anchorPoint = CGPoint(x: 0, y: 0)
请记住,您放置在场景中的所有内容都是基于 anchorPoint
放置的。所以对于这个anchorPoint
,场景的原点是左下角。
另请注意,如果您使用 .AspectFill
作为 sceneScaleMode
,则不必使用 self.frame
,而是将场景大小设置为 768x1024(纵向)/ 1024x768(风景)则只需使用场景大小内的数值。
此外,将场景 anchorPoint
设置为中心还有一些好处:
scene.anchorPoint = CGPoint(x: 0.5, y: 0.5)
这使得场景更容易适合 iPad 大小以及 iPhone,并且还简化了居中节点。
查看此 link 了解有关使您的应用程序通用的更多信息: