使SKSpriteNode没有纹理

时间:2015-01-23 22:52:45

标签: xcode swift

我无法通过Swift将SKSpriteNode显示在我的场景中。

这是我的代码,涉及didMoveToView函数的节点:

let block = SKSpriteNode(color: UIColor.redColor(), size: CGSize(width: 100.0, height: 100.0))

block.position = CGPointMake(100.0, 100.0)

    self.addChild(block)

它不会引发任何错误,但我不会看到我的场景中出现的阻止。欢迎任何想法!

2 个答案:

答案 0 :(得分:0)

我认为您没有看到它,因为场景比例模式是AspectFill。缩放模式确定场景如何映射到视图。您可以在viewDidLoad函数的GameViewController.swift中找到它并更改或删除它。 节点的默认位置是CGPoint(x:0.0,y:0.0),这意味着节点的中间位于屏幕左下角的那个位置。尝试使用值来查看会发生什么。 我希望我能帮助你。 祝你好运!

答案 1 :(得分:0)

由于GameScene和GameViewController的大小不同,您的问题就出现了。 GameScene-size默认为小。

要解决这个问题,只需在GameViewController方法的viewDidLoad - 文件中添加以下行:scene.scaleMode = .AspectFill

scene.size = skView.bounds.size 

另外,要在屏幕中间设置节点,请将以下行添加到didMoveToView方法中:

block.position = CGPointMake(self.frame.size.width/2, self.frame.size.height/2)

这样,您的节点将位于屏幕的中心。