swift SpriteKit SKNode 类

Posted

技术标签:

【中文标题】swift SpriteKit SKNode 类【英文标题】:swift SpriteKit SKNode class 【发布时间】:2015-07-21 19:01:37 【问题描述】:

我正在根据教程制作一个瓷砖游戏,其中包含以下代码:

var tile: SKNode?

    switch tileCode 
        case "g":
            tile = SKSpriteNode(texture: atlas?.textureNamed("grassTile"))

        default:
        println("Unknown tilecode: \(tileCode)")
    

我很困惑,因为 tile 被声明为 SKNode 类型,但在 switch 语句中它被制成 SKSpriteNode。为什么可以这样做?

【问题讨论】:

SKSpriteNode 是 SKNode 的子类 【参考方案1】:

您仍然可以将tile 作为一个SKNode 访问,因为它是这样声明的,但它实际上将指向一个SKSpriteNode 对象。之所以可行并且编译器不会抱怨是因为SKSpriteNodeSKNode 的子类,即它具有SKNode 将具有的所有属性和方法。整个概念称为polymorphism,与dynamic binding 密切相关。

【讨论】:

以上是关于swift SpriteKit SKNode 类的主要内容,如果未能解决你的问题,请参考以下文章