我不知道它是否是在Swift 1.2中启动的问题。我是swift和SpriteKit的新手。我正在观看一个在线教程,那个人可以通过以下方式在屏幕的左下角放置一个绿色框:
let greenBox = SKSpriteNode(color: UIColor.greenColor(), size: CGSize(width: 200, height: 200))
let somePoint = CGPointMake(0, 0)
greenBox.position = somePoint
self.addChild(greenBox)
然而,当我尝试同样的事情时,它甚至不会出现在屏幕上!后来,我发现屏幕的左下角实际上接近(300,10)。为什么会这样?
另外,我发现self.frame.size等于(1024.0,768.0),这更令人困惑,因为它与iPhone6的大小无关。 (虽然我正在测试iPhone 6。)
我被困在这里。任何帮助将不胜感激,谢谢!
答案 0 :(得分:1)
有一些事情。首先,确保你的gameViewController.swift在viewDidLoad
函数中包含此代码:
self.screenSize = skView.frame.size.width
/* Set the scale mode to scale to fit the window */
scene.scaleMode = .AspectFill
scene.size = skView.bounds.size
这将确保您拥有正确的宽高比和iPhone屏幕尺寸。
要获得屏幕的左下角,您可以使用:
let somePoint = CGPointMake(CGRectGetMinX(self.frame), CGRectGetMinY(self.frame))
最后,我相信greenBox有一个中心锚点,所以它会将盒子的中心放在左下角,这意味着大约75%的块将从屏幕上掉下来。
您可以将锚点更改为绿色框的左下角,以确保它完全显示。
greenBox.anchorPoint = CGPointMake(0, 0)