制作没有纹理的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)
这样,您的节点将位于屏幕中央。
我无法让 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)
这样,您的节点将位于屏幕中央。