Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xcode 制作无纹理的SKSpriteNode_Xcode_Swift - Fatal编程技术网

Xcode 制作无纹理的SKSpriteNode

Xcode 制作无纹理的SKSpriteNode,xcode,swift,Xcode,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) 它没有抛出任何错误,但我没有看到块显示在我的场景中。欢迎有

我不能让斯普瑞泰诺德出现在我和斯威夫特的场景中

下面是我的代码,涉及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中找到它,并对其进行更改或删除。 节点的默认位置是CGPointx:0.0,y:0.0,这意味着节点的中间位于屏幕左下角的位置。尝试使用这些值,看看会发生什么。 我希望我帮助了你。
祝你好运

出现问题的原因是游戏场景和GameViewController的大小不同。默认情况下,游戏场景的大小非常小

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

还可以在屏幕中间设置节点,将下面的行添加到DeDimoToVIEW方法:

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

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

确实如此!谢谢另外,对于我的iphone5S来说,默认的场景大小显然太大了,那么是什么呢?如果我像你建议的那样使用位置参照,这有关系吗?没有关系。只是别忘了将这一行添加到您制作的每个新GameViewController中。
block.position = CGPointMake(self.frame.size.width/2, self.frame.size.height/2)