我在我的项目中有一个空的SKScene,我尝试按照以下方式将一个方块添加到场景中:
let blueBox = SKSpriteNode(color: UIColor.blueColor(),
size: CGSize(width: 100, height: 100))
blueBox.anchorPoint = CGPoint(x: 0, y: 0)
blueBox.position = CGPoint(x: 0, y: 0)
addChild(blueBox)
由于某种原因,该框未显示在屏幕上。如果我对定位坐标的理解是正确的,即anchorPoint为0,0,位置为0,0,则意味着“将点0,0视为蓝色框的左下角”。因此,我期望在屏幕的左下角看到一个蓝色框。然而,如果我像这样更改位置:
blueBox.position = CGPoint(x: 300, y: 0)
我能看到一个蓝色的框(在底部非常靠近左边缘)。就好像屏幕底部左侧坐标不是从x = 0开始,而是某个大约等于300的值。
有人能给我一点提示吗?正如你所看到的,我对SpriteKit相当陌生。
我第二个问题与SKScene中的bound和frame有关。我可以看到'self.size.width'确实与'self.frame.size.width'相同。同样,'self.size.height'与'self.size.height'相同(在我的模拟器中,宽度为1024,高度为768)。 然而,如果我使用self.view.bounds.size.width,则得到375。类似地,self.view.bounds.size.height给我667。 那么我的问题是,这个“view”(SKView)是如何在我的代码中设置的?我没有设置任何内容。
字面上是:
class GameScene: SKScene {
override func didMoveToView(view: SKView) {
// prints Optional(375.0) Optional(667.0)
print("\(self.view?.bounds.size.width) \(self.view?.bounds.size.height)")
// prints 1024.0 768.0
print("\(self.size.width) \(self.size.height)")
}
}
非常感谢您的帮助!以下是关于IT技术的内容: