title: SpriteKit Add node in empty location with duration
body: <p>I need some help.
  I am developing a game and I have two questions.
  Quick explanation of game :</p>
  
  <p>There are three different nodes (shark (player), water ball  and brick )</p>
  
  <p>When the game starts there are one shark, four water balls and eight bricks.</p>
  
  <p>when shark contacts with water ball, player earns point, water ball disappears and game adds another water ball in random location,</p>
  
  <p>When shark contacts with brick shark dies and disappear from the screen.</p>
  
  <p>My questions are;</p>
  
  <p>First : When we hit the water ball how do we add the water ball in empty location. How do I make sure new water ball will be in different location then bricks and other water balls?</p>
  
  <p>Second:</p>
  
  <p>I want to wait a few seconds before I add the new water ball. How do I do that?</p>
  
  <p>Here is some part of my code.</p>
  
  <p>Thank you,</p>
  
  <pre><code>    -(void) addWaterBallTopLeft {
  
   WaterBall *waterBall = [WaterBall waterBallAtPosition:CGPointMake
                      ([Util randomWithMin:(self.frame.size.width/10) + self.waterBall.size.width max:self.frame.size.width/2-self.brickT.size.width],
                      [Util randomWithMin:(self.frame.size.height- (self.frame.size.height/4)) + self.brickW.size.height max:self.frame.size.height-20])];
  
                      waterBall.name = @"WATERBALLTL";
                      [self addChild:waterBall ];
     }
  
       -(void) addWaterBallTopRight {
  
  WaterBall *waterBall = [WaterBall waterBallAtPosition:CGPointMake([Util randomWithMin:self.frame.size.width/2+20 max:self.frame.size.width-20], [Util randomWithMin:(self.frame.size.height- (self.frame.size.height/4)-20) max:self.frame.size.height-20])];
  waterBall.name = @"WATERBALLTR";
  
  
  [self addChild:waterBall ];
     }
  
    -(void) addWaterBallBottomLeft {
  
  WaterBall *waterBall = [WaterBall waterBallAtPosition:CGPointMake([Util randomWithMin:20 max:self.frame.size.width/2-20], [Util randomWithMin:(self.frame.size.height/2)+20 max:(self.frame.size.height- (self.frame.size.height/4)-20)])];
  
  waterBall.name = @"WATERBALLBL";
  
  [self addChild:waterBall];
     }
  
    -(void) addWaterBallBottomRight {
  
  WaterBall *waterBall = [WaterBall waterBallAtPosition:CGPointMake([Util randomWithMin:self.frame.size.width/2+20 max:self.frame.size.width-20], [Util randomWithMin:(self.frame.size.height/2)+20 max:(self.frame.size.height- (self.frame.size.height/4)-20)])];
  
  waterBall.name = @"WATERBALLBR";
  
  [self addChild:waterBall];
      }
  
  
  
  
     -(void) addBrick {
     BrickW *brickW1 = [BrickW BrickWAtPosition:CGPointMake( (self.frame.size.width/12)* 1 , self.frame.size.height - self.frame.size.height * 0.25) ];
     [self addChild:brickW1];
  
     BrickW *brickW2 = [BrickW BrickWAtPosition:CGPointMake( (self.frame.size.width/12)* 3 , self.frame.size.height - self.frame.size.height * 0.25) ];
     [self addChild:brickW2];
  
     BrickW *brickW3 = [BrickW BrickWAtPosition:CGPointMake( (self.frame.size.width/12)* 9, self.frame.size.height - self.frame.size.height * 0.25)];
  
    [self addChild:brickW3];
  
  BrickW *brickW4 = [BrickW BrickWAtPosition:CGPointMake( (self.frame.size.width/12)* 11, self.frame.size.height - self.frame.size.height * 0.25)];
  
  [self addChild:brickW4];
  
  
   BrickT *brickT1 = [BrickT BrickTAtPosition:CGPointMake( self.frame.size.width/2 , (self.frame.size.height / 24)*23 )];
   [self addChild:brickT1];
  
  BrickT *brickT2 = [BrickT BrickTAtPosition:CGPointMake( self.frame.size.width/2 , (self.frame.size.height / 24)*21 )  ];
  [self addChild:brickT2];
  
     BrickT *brickT3 = [BrickT BrickTAtPosition:CGPointMake( self.frame.size.width/2 , (self.frame.size.height / 24)*13 )];
      [self addChild:brickT3];
  
  BrickT *brickT4 = [BrickT BrickTAtPosition:CGPointMake( self.frame.size.width/2 , (self.frame.size.height / 24)*15)];
  [self addChild:brickT4];
  
  
      }
  </code></pre>
  
  <hr>
  
  <pre><code>    - (void) didBeginContact:(SKPhysicsContact *)contact {
  SKPhysicsBody *firstBody, *secondBody;
  
  if (contact.bodyA.categoryBitMask &lt; contact.bodyB.categoryBitMask) {
      firstBody = contact.bodyA;
      secondBody = contact.bodyB;
  } else {
      firstBody = contact.bodyB;
      secondBody = contact.bodyA;
  }
  
  
  if ( firstBody.categoryBitMask == CollisionCategoryBrick &amp;&amp; secondBody.categoryBitMask == CollisionCategoryShark ) {
      NSLog(@"BRICK");
  
    [contact.bodyB.node removeFromParent];
  
  } else if ( firstBody.categoryBitMask == CollisionCategoryWaterBall &amp;&amp; secondBody.categoryBitMask == CollisionCategoryShark ) {
      NSLog(@"BALL");
      self.addSeconds =YES;
  
      [contact.bodyA.node removeFromParent];
  
  
      [self addPoints:PointsPerHit];
  
  
  
      if (![ self childNodeWithName:@"WATERBALLTL"]) {
  
          [self addWaterBallTopLeft];
      }
      if (![ self childNodeWithName:@"WATERBALLTR"]) {
          [self addWaterBallTopRight];
      }
      if (![ self childNodeWithName:@"WATERBALLBL"]) {
          [self addWaterBallBottomLeft];
      }
      if (![ self childNodeWithName:@"WATERBALLBR"]) {
          [self addWaterBallBottomRight];
      }     }
    NSLog(@"%lu", (unsigned long)[self.children count]);
  
       }
  </code></pre>
  
  <hr>
  
  <pre><code>     -(void)update:(CFTimeInterval)currentTime {
  
      if (startGamePlay){
  
          startTime = currentTime;
          startGamePlay = NO;
  
  }
  
  timeSinceStart = (currentTime -startTime);
  countDownInt = 1000 - (int)(currentTime-startTime);
  
  
  
  
   if (countDownInt &gt; 0 &amp;&amp; self.addSeconds == NO) {
  
       countDown.text = [NSString stringWithFormat:@"%i", countDownInt];
  
   }   else if(countDownInt &gt; 0 &amp;&amp; self.addSeconds == YES){
  
  
       startTime +=2;
  
      countDown.text = [NSString stringWithFormat:@"%i", countDownInt];
       self.addSeconds = NO;
  }
  
  if (countDownInt == 0 ){
  
      countDown.text =@"0";
      Level2 *level2  = [Level2 sceneWithSize:self.frame.size];
      SKTransition *transition = [SKTransition fadeWithDuration:0.5];
      [self.view presentScene:level2  transition:transition];
  
  }
  
      }
  </code></pre>