2016-01-25 41 views
0

我试图在SpriteKit中创建一个类,但我不知道它是否可能。创建一个继承自Swift中的SKSpriteNode数组的类

我知道:

class myClass: SKSpriteNode 
{ 
    var myVar: Int = 0 
    var mySecondVar: Int = 0 
} 

将创建从SKSpriteNode类继承的类。

然后,为了从这个类来创建一个2 dimensionnal阵列,我用这个:

var array = [[myClass]]() 

所以,我可以那么这里

var elements = [myClass]() 

elements.append(myClass(imageNamed: "image")) 
elements.append(myClass(imageNamed: "image")) 

array.append(elements) 

添加元素,我可以访问myVar的和mySecondVar使用

array[x][y].myVar 
array[x][y].mySecondVar 

但我想要做的是,mySecondVar将是一个变量从myClass,s Ø这是确定的,但我想用这种语法访问myVar的:

array[x].myVar 
array[x][y].mySecondVar 

我不知道我怎么能做到这一点,我想这一点:

class myClass: [SKSpriteNode] 

,但它不没有工作。你可以试着帮我吗? 谢谢。

+0

你为什么要这么做?你所希望的用例似乎暗示'myVar'应该是'static',但在这种情况下,我不明白为什么要获取数组。你能描述一下'myVar'代表了什么更好? – DeFrenZ

+0

对不起,我只是意识到我在我的文章中犯了一个错误,我把myClass [x] .myVar而不是array [x] .myVar,你可以检查下面的新代码,你明白了吗? – Drakalex

+0

哦,我什至没有注意到!但是,不,没有多大帮助。如果你可以描述_why_'myVar'应该是数组的属性而不是实例会有帮助。否则,也许你应该为'[SKSpriteNode]'创建一个包装类' – DeFrenZ

回答

1

在这种情况下,我建议你完全不同。这样,我们所代表的问题更具体,易于使用的方式:

class LaserBeam { 
    var emitter: SKSpriteNode 
    var receiver: SKSpriteNode 
    var isActive: Bool 
} 
class LaserNode: SKSpriteNode { 
    var temperature: CGFloat 
} 

var array: [LaserBeam] = ... 
+0

嗯,我真的没有想过这个选项,我会试试看,但它似乎更容易,谢谢。编辑:你的意思是'var发射器:LaserNode',而不是'var emitter:SKSpriteNode'? – Drakalex