我尝试以编程方式创建SKSpriteNode
并为其提供位于Assets.xcassets
文件夹中的纹理。我认为这将是一个基本程序,但我似乎遇到了很多麻烦。
作为参考,这是我的资产目录,其中包含基础资产,我试图设置为SKSpriteNode
:
这是制作精灵节点的代码:
sprite.texture = SKTexture(image: UIImage(named: spriteName)!)
sprite.anchorPoint = CGPoint(x: 0, y: 1)
sprite.position = CGPoint(x: 0, y: 0)
referenceNode.addChild(sprite)
变量" spriteName"在第一行是String" ground"进入它。然而,当我加载游戏时,地面缺失。为了确保节点实际存在,我注释掉纹理代码并给它们大小和可见颜色。这样就解决了,所以我知道问题肯定在资产参考中,而不是在代码逻辑中。
非常感谢正确方向的任何一点。如果需要更多信息,请尽可能具体询问:)
谢谢, 马修
修改
我原来的问题可能有点过于复杂。用简单的术语来改写:
我的资产库中有一个名为ground的资产。但是,当我使用此代码设置SKSpriteNode
的纹理时......
sprite.texture = SKTexture(image: UIImage(named: "ground")!)
纹理没有显示在app中。我的问题:如何正确引用资产库中的图像?
答案 0 :(得分:2)
您似乎也需要明确设置尺寸:
sprite.texture = SKTexture(imageNamed: "myImage1")
sprite.size = sprite.texture!.size()
..或者您可以在init中指定图像:
let sprite = SKSpriteNode(imageNamed: "myImage1")