gpt4 book ai didi

swift - 无法将类型 'SKSpriteNode' 的值转换为 myApp.CustomSprite

转载 作者:行者123 更新时间:2023-11-28 06:27:10 24 4
gpt4 key购买 nike

我是 Swift 和 SpriteKit 的新手,所以请多多包涵。我正在尝试创建一个简单的游戏,我创建了一个自定义类 (CustomSprite):

import UIKit
import SpriteKit

class CustomSprite: SKSpriteNode {

var spriteColor: String = ""

}

CustomSprite 具有 spriteColor 仅用于检查原因(在游戏后期)我正在尝试在 GameScene 中制作一个新的 Sprite :

var mPlayer: CustomSprite = CustomSprite()

override func didMove(to view: SKView) {

//crashes here (mPlayer = self. xxxxxx)
mPlayer = self.childNode(withName: "mainPlayer") as! CustomSprite
mPlayer.spriteColor = "red"
}

我在运行游戏并进入 didMove 时遇到此错误:

Could not cast value of type 'SKSpriteNode' to 'myApp.CustomSprite'

我不明白我必须做什么才能修复它,以及为什么会这样。我确实将 .sks 文件中的 Custom Class 设置为 CustomSprite 并保存,但它没有更改或修复错误。

最佳答案

您可以尝试用可选绑定(bind)替换您的代码:

if let sprite = self.childNode(withName: "//mainPlayer") as? CustomSprite {
mPlayer = sprite
// do whatever you want with your mPlayer
}

mainPlayer 之前的“//”指定搜索应该从根节点开始,并在整个节点树中递归执行。否则,它从当前位置执行递归搜索。您可以找到更多详细信息 here

关于swift - 无法将类型 'SKSpriteNode' 的值转换为 myApp.CustomSprite,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41521665/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com