Game Development Reference
In-Depth Information
Time for action - initializing our Terrain
class
We'll go over these steps next:
1. The first important method to implement is initTerrain :
void Terrain::initTerrain () {
_increaseGapInterval = 5000;
_increaseGapTimer = 0;
_gapSize = 2;
//init object pools
for (int i = 0; i < 20; i++) {
auto block = Block::create();
this->addChild(block);
_blockPool.pushBack(block);
}
_minTerrainWidth = _screenSize.width * 1.5f;
random_shuffle(_blockPattern.begin(),
_blockPattern.end());
random_shuffle(_blockWidths.begin(),
_blockWidths.end());
random_shuffle(_blockHeights.begin(),
_blockHeights.end());
this->addBlocks(0);
}
We have a timer to increase the width of gaps (we begin with gaps two tiles long).
We create a pool for blocks so we don't instantiate any during the game. And 20
blocks is more than enough for what we need.
Search WWH ::




Custom Search