Ios Swift扩展与其他类
我在做一个游戏,有一堆向量,每个向量对应于另一个向量中的一个SKSpriteNode。您能否扩展SKSpriteNode类以将我存储在其他向量中的属性包含在相应索引中,然后在SKScene的类声明/实现中创建ExtendedSKSpriteNode类型的对象?我试过了,但收效甚微Ios Swift扩展与其他类,ios,swift,sprite-kit,Ios,Swift,Sprite Kit,我在做一个游戏,有一堆向量,每个向量对应于另一个向量中的一个SKSpriteNode。您能否扩展SKSpriteNode类以将我存储在其他向量中的属性包含在相应索引中,然后在SKScene的类声明/实现中创建ExtendedSKSpriteNode类型的对象?我试过了,但收效甚微 //Current Implementation class OldScene: SKScene { var node1 = SKSpriteNode(imageNamed: "who cares")
//Current Implementation
class OldScene: SKScene {
var node1 = SKSpriteNode(imageNamed: "who cares")
var node2 = SKSpriteNode(imageNamed: "doesn't matter")
var node3 = SKSpriteNode(imageNamed: "this is instantiated")
var nodeVector: [SKSpriteNode] = [node1, node2, node3]
var timesWhenSomethingHappensToEachNode: [CGFloat] = [CGFloat(1.2), CGFloat(1.7), CGFloat(3.1)]
var framesUntilThisOccurs: [Int] = [2, 30, 15]
}
//Desired implementation
extension SKSpriteNode {
//timesWhenSomethingHappensToEachNode and framesUntilThisOccurs are made properties
//of SKSpriteNode
//probably happens in here
}
class NewScene: SKScene {
//Can we instantiate those extended types here?
var newNode1 = SKSpriteNode(imageNamed: "who cares")
var newNode3 = SKSpriteNode(imageNamed: "this is instantiated")
var nodeOneTime = newNode1.timesWhenSomethingHappensToEachNode
var framesUntilThreeHappens = newNode3.framesUntilThisOccurs
}
既然可以创建一个SKSpriteNode子类,为什么还要扩展SKSpriteNode?一个扩展不能有存储的属性,但这里有一个很好的观点,paul。多态性和条件向下转换应该使这变得非常简单。谢谢