void renderAll(Game& game) { SDL_RenderClear(game.renderer); if (game.bonusItem.alive) renderItem(game.renderer, game.bonusItem); for (unsigned int i = 0; i < game.daMissiles.size(); i++) renderMissile(game.renderer, game.daMissiles[i]); for (unsigned int i = 0; i < game.daEnemies.size(); i++) renderEnemy(game.renderer, game.daEnemies[i]); for (unsigned int i = 0; i < game.daBlasts.size(); i++) renderBlast(game.renderer, game.daBlasts[i]); if (game.daBox.alive) renderBox(game.renderer, game.daBox); for (unsigned int i = 0; i < game.lives.size(); i++) renderBlast(game.renderer, game.lives[i]); renderScore(game); SDL_UpdateWindowSurface(game.window); }
void render() { // Clears the buffer with this colour attribute clearBuffer(0x00); // Set up sample colours, and output shadings const WORD colors[] = { 0x1A, 0x2B, 0x3C, 0x4D, 0x5E, 0x6F, 0xA1, 0xB2, 0xC3, 0xD4, 0xE5, 0xF6 }; COORD c; // displays the framerate std::ostringstream ss; ss << std::fixed << std::setprecision(3); ss << 1.0 / deltaTime << "fps"; c.X = ConsoleSize.X-9; c.Y = 0; writeToBuffer(c, ss.str()); // displays the elapsed time ss.str(""); ss << elapsedTime << "secs"; c.X = 0; c.Y = ConsoleSize.Y - 1; writeToBuffer(c, ss.str(), 0x59); if (!levelStart) levelStart = initLevel(); renderShip(); moveBullets(); checkBulletCollision(enemyArr, levelInfo.number); renderBullets(); if (!spawnBufferCount && enemiesSpawned < levelInfo.number) { if (spawnEnemy(enemyArr, levelInfo.number)) { spawnBufferCount += levelInfo.spawnBuffer; enemiesSpawned++; } } else if (spawnBufferCount) spawnBufferCount--; moveEnemy(enemyArr, levelInfo.number); checkBulletCollision(enemyArr, levelInfo.number); checkEnemyCollision(enemyArr, levelInfo.number); renderEnemy(enemyArr, levelInfo.number); if (levelInfo.bullets) { if (spawnEnemyBullet(enemyArr)) { spawnBufferCount += bulletInfo.spawnBuffer; } moveEnemy(enemyBulletArr, bulletInfo.number); checkEnemyCollision(enemyBulletArr, bulletInfo.number); renderEnemy(enemyBulletArr, bulletInfo.number); } // Writes the buffer to the console, hence you will see what you have written flushBufferToConsole(); if (enemiesSpawned == levelInfo.number) { if (checkClear(enemyArr, levelInfo.number)) { levelStart = false; enemiesSpawned = 0; spawnBufferCount = 0; delete[] enemyArr; delete[] enemyBulletArr; levelInfo.level = levelInfo.nextLevel; } } }