制作没有纹理的SKSpriteNode

make SKSpriteNode without texture

我无法让 SKSpriteNode 出现在我的 Swift 场景中。

这是我的代码,涉及 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)

它没有抛出任何错误,但我没有看到该块出现在我的场景中。欢迎任何想法!

我想你看不出来是因为场景缩放模式是AspectFill。缩放模式决定场景如何映射到视图。你可以在viewDidLoad函数中的GameViewController.swift中找到它并更改它或删除它。 节点的默认位置是 CGPoint(x: 0.0, y: 0.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)

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