以编程方式使用资产创建 SKSpriteNode
Create SKSpriteNode with an Asset Programmatically
我正在尝试以编程方式创建一个 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" 将字符串 "ground" 传递给它。但是,当我加载游戏时,地面不见了。为了确保节点确实存在,我注释掉了纹理代码并只给了它们大小和可见颜色。这成功了,所以我知道问题肯定出在资产参考中,而不是代码逻辑中。
任何方向正确的观点都将不胜感激。如果需要更多信息,请尽可能具体地询问:)
谢谢,
马修
编辑:
我原来的问题可能有点太复杂了。换句话说更简单:
我的资源库中有一个名为 ground 的资源。但是,当我使用此代码设置 SKSpriteNode
的纹理时...
sprite.texture = SKTexture(image: UIImage(named: "ground")!)
纹理未显示在应用程序中。我的问题:如何正确引用资产库中的图像?
看来您也需要明确设置尺寸:
sprite.texture = SKTexture(imageNamed: "myImage1")
sprite.size = sprite.texture!.size()
..或者你可以在初始化中指定图像:
let sprite = SKSpriteNode(imageNamed: "myImage1")
我正在尝试以编程方式创建一个 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" 将字符串 "ground" 传递给它。但是,当我加载游戏时,地面不见了。为了确保节点确实存在,我注释掉了纹理代码并只给了它们大小和可见颜色。这成功了,所以我知道问题肯定出在资产参考中,而不是代码逻辑中。
任何方向正确的观点都将不胜感激。如果需要更多信息,请尽可能具体地询问:)
谢谢, 马修
编辑:
我原来的问题可能有点太复杂了。换句话说更简单:
我的资源库中有一个名为 ground 的资源。但是,当我使用此代码设置 SKSpriteNode
的纹理时...
sprite.texture = SKTexture(image: UIImage(named: "ground")!)
纹理未显示在应用程序中。我的问题:如何正确引用资产库中的图像?
看来您也需要明确设置尺寸:
sprite.texture = SKTexture(imageNamed: "myImage1")
sprite.size = sprite.texture!.size()
..或者你可以在初始化中指定图像:
let sprite = SKSpriteNode(imageNamed: "myImage1")