Accesing local defined variable in other functions - Swift -
i making game kind of space invaders. have function creates invaders @ random position.x.
inside addinvader(), have defined attacker skspritenode(imagenamed: "someimage").
this have defined inside function, since there added new attacker every second.
my problem inside function:
override func update(currenttime: nstimeinterval) { if attacker.position.y < cgfloat(size.height/5*2) attacker.texture = sktexture(imagenamed: "someotherimage") } } since attacker constant local, update(currenttime: nstimeinterval) function can`t access it.
how can access attacker.position inside update-function?
there no way can access variable defined privately in method.
but can this..
in addinvader() method, below this
var attacker = skspritenode(imagenamed: "someimage") you want add following code
attacker.name = "attacker" you can set attacker.name want string.
setting allow find node in skscene , use so
now once have set ready move on update(currenttime: nstimeinterval) method. inside update(currenttime: nstimeinterval) add line of code before else
let attacker = self.childnodewithname("attacker") as! skspritenode what loops through of children in skscene , looks 1 name called attacker or whatever set. if attacker node not child of skscene , child of variable example attackerparent can this
let attcker = attackerparent.childnodewithname("attacker") as! skspritenode so update function this
let attacker = self.childnodewithname("attacker") as! skspritenode if attacker.position.y < cgfloat(size.height/5*2) { attacker.texture = sktexture(imagenamed: "someotherimage") } also quick tip, if want change texture of skspritenode so
var texture = sktexture(imagenamed : "someotherimage") attacker.texture = texture
Comments
Post a Comment