objective c - iOS spritekit nodes stutter when transitioning from scene -


i'm developing game in ios spritekit using objective c. created menu view in viewcontroller , i'm calling gamescene. in gamescene uses 5 different nodes has released 1 one randomly top of screen. each of 5 nodes have 4 different images stored in atlas. if node moves bottom of screen change image in node , release top of screen.

i'm releasing node using following code

self.wait = [skaction waitforduration: 1.0]; self.run = [skaction runblock:^{ if ([nodesarray count] > 0) {    //select node release randomly , remove array } }]; self.seq = [skaction sequence: @[self.wait, self.run]]; 

those 5 nodes stored in array called nodesarray.

code selecting random node :

int = arc4random() %[nodesarray count]; skspritenode *mynode = nodesarray[i]; 

for removing node in array :

[nodesarray removeobjectatindex:i]; 

after setting position :

mynode.position = cgpointmake(x, y) 

and velocity :

mynode.physicsbody.velocity = cgvectormake(dx,dy) 

and add node scene :

[self addchild: mynode]; 

repeat these steps until array count 0.

now problem noticed stutter when nodes released array. don't know why these stutter occurs it's random, these predominantly occurs when scene restarted or if come scene game scene. when come directly gamescene without intermediate scene launchscreen.xib , there no stutter.

for restarting scene call scene following code

gamescene *firstscene = [gamescene scenewithsize:self.size]; [self.view presentscene:firstscene transition:[sktransition fadewithduration:1.0]] 

ps. tried implementing menu scene , returning game scene, nevertheless causes random stutter in game scene irrespective of whether remove node's & actions before leave game scene.

already added log statement know how many nodes available in array.

nslog(@"nodes count %lu , random number %lu",(unsigned long)[nodesarray count],(unsigned long)i); 

after removing node, array count 1 less normal count.

nslog(@"nodes count %lu",(unsigned long)[nodesarray count]); 

after removing nodes, method won't call wouldn't print log inside method.

log output :

2014-12-04 11:17:31.171 newgame[633:21010] nodes count 5 , random number 2

now second node in array called. after removing second node in array array count shown in next log.

2014-12-04 11:17:31.171 newgame[633:21010] nodes count after removal of node : 4

this bug stopping me releasing game, appreciated.


Comments

Popular posts from this blog

ruby on rails - RuntimeError: Circular dependency detected while autoloading constant - ActiveAdmin.register Role -

c++ - OpenMP unpredictable overhead -

javascript - Wordpress slider, not displayed 100% width -