【发布时间】:2014-06-17 16:47:29
【问题描述】:
我一直在尝试使用带有 Swift 的 SpriteKit 框架在屏幕上放置节点,但是我找不到原点在哪里。我以为它在左下角,但是当我将 node3 放在那里时,它似乎不在屏幕上的某个地方。只有 node1 出现在屏幕上,有人可以解释发生了什么吗?
class GameScene: SKScene {
override func didMoveToView(view: SKView) {
let node = SKSpriteNode(color: UIColor.greenColor(), size: CGSize(width: 50, height: 50))
node.position = CGPoint(x:CGRectGetMidX(self.frame), y: CGRectGetMidY(self.frame))
self.addChild(node)
let node2 = SKSpriteNode(color: UIColor.orangeColor(), size: CGSize(width: 50, height: 50))
node2.position = CGPoint(x: 200.0 , y: 200.0 as Double)
self.addChild(node2)
let node3 = SKSpriteNode(color: UIColor.redColor(), size: CGSize(width: 50, height: 50))
node3.position = CGPoint(x: 0.0 , y: 0.0)
self.addChild(node3)
}
SpriteKit 模板有如下视图配置:
let skView = self.view as SKView
/* Sprite Kit applies additional optimizations to improve rendering performance */
skView.ignoresSiblingOrder = true
/* Set the scale mode to scale to fit the window */
scene.scaleMode = .AspectFill
skView.presentScene(scene)
【问题讨论】:
-
尝试 200.f 和 200.f 而不是 200
-
对不起,同样的结果:/
-
原点在左下角。如果您得到不同的结果,请检查 scene.size 是否与您的视图和方向匹配,并检查应该设置为 aspect fit 或 resize fill 的 scene.scaleMode。
-
您的第一个矩形(位于
50,50)显示在您的视图中心。这可能意味着您的size或scale正在以某种方式转换视图,以便50,50` 位于中心。在这种情况下,0,0和200,200不在屏幕上是有道理的。
标签: sprite-kit swift skspritenode