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
对象。之所以可行并且编译器不会抱怨是因为SKSpriteNode
是SKNode
的子类,即它具有SKNode
将具有的所有属性和方法。整个概念称为polymorphism,与dynamic binding 密切相关。
【讨论】:
以上是关于swift SpriteKit SKNode 类的主要内容,如果未能解决你的问题,请参考以下文章
Swift SpriteKit - “尝试添加一个已经有父节点的 SKNode”,同时添加关节
如何在 Swift Playgrounds 中使用带有纹理的 SKNode 设置 SKScene?