void BallDispencer::DropBall() { Ball* toDrop = _containedBalls.front(); Vec2 posRelativeToDispencer = toDrop->getPosition(); Vec2 posRelativeToWorld = this->convertToWorldSpace(posRelativeToDispencer); toDrop->retain(); toDrop->removeFromParentAndCleanup(false); getParent()->addChild(toDrop); toDrop->setPosition(posRelativeToWorld); toDrop->release(); toDrop->Drop(); toDrop->setZOrder(0); _containedBalls.erase(_containedBalls.begin()); //move up next balls for (int i = 0; i < _containedBalls.size(); i++) { _containedBalls[i]->MoveToNext(_nodes[14 - i]->getPosition(), 14 - i); } //top up AddBall(); }