Beispiel #1
0
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);
}
Beispiel #2
0
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;
		}
	}
}