Swift 4 SKSpriteNode 转换为 CustomClass

Swift 4 SKSpriteNode cast to CustomClass

您好,我想做的是以编程方式创建一个 spriteNode 并为其分配 class。这样我就可以轻松管理节点特性,例如自定义级别、枪支、hp 等... 这是我正在尝试的方法。

let player = SKSpriteNode(imageNamed: "charcter") as? Dummyplayer
    player.physicsBody?.affectedByGravity = false
    player.physicsBody?.allowsRotation = false
    player.size.height = 75
    player.size.width = 75
    addChild(player)
    player.position.x = CGFloat(x)
    player.position.y = CGFloat(y)

但它没有说它不能将类型 SKSpriteNode 转换为类型 game.Dummplayer,class Dummyplayer 是 SKSpriteNode 类型,所以我不确定我做错了什么。

您正在创建 SKSpriteNode,然后将其转换为 DummyPlayer。演员表总是会失败,因为玩家 NOT a DummyPlayer.

解决方案

假设 Dummyplayer class 定义如下

class Dummyplayer: SKSpriteNode { }

您需要创建一个 Dummyplayer

类型的值
if let player = Dummyplayer(imageNamed: "character") {
    ....
}