Game Development Reference
In-Depth Information
Time for action - moving and resetting
We move the terrain inside the move method.
1. The move method receives as a parameter the amount of movement in the x axis:
void Terrain::move (float xMove) {
if (xMove < 0) return;
if (_startTerrain) {
if (xMove > 0 && _gapSize < 5)
_increaseGapTimer += xMove;
if (_increaseGapTimer > _increaseGapInterval) {
_increaseGapTimer = 0;
_gapSize += 1;
}
}
this->setPositionX(this->getPositionX() - xMove);
auto block = _blocks.at(0);
if (_position.x + block->getWidth() < 0) {
auto firstBlock = _blocks.at(0);
_blocks.erase(0);
_blocks.pushBack(firstBlock);
_position.x += block->getWidth();
float width_cnt = this->getWidth() -
block->getWidth() - ( _blocks.at(0))->getWidth();
this->initBlock(block);
this->addBlocks(width_cnt);
}
}
The value for xMove comes from the _player speed.
Search WWH ::




Custom Search