Пример #1
0
void updateGUI(Game *game, Level *level){
	int i = 0;
	
	/*
	drawBackground(&(level->stars));
	drawGameInfo(game, level);
	if(!level->playerDamaged) {
		drawShip(level->player.currPos.x, level->player.currPos.y);
	}
	else {
		level->playerDamaged = FALSE;
	}
	drawEnemies(level);
	drawBullets(level);
	memcpy((char*)LCD_FRAME_BUFFER,(char*)LCD_TEMP_BUFFER, 153600); // write temp buffer to fram buffer
	*/
	
	if (level->playerDamaged) {
		for (i = 0; i < 2; i++) {
			drawBackground(&(level->stars));
			drawGameInfo(game, level);
			//drawShip(level->player.currPos.x, level->player.currPos.y);
			drawEnemies(level);
			drawBullets(level);
			memcpy((char*)LCD_FRAME_BUFFER,(char*)LCD_TEMP_BUFFER, 153600); // write temp buffer to fram buffer
			
			mdelay(50);
			
			drawBackground(&(level->stars));
			drawGameInfo(game, level);
			drawShip(level->player.currPos.x, level->player.currPos.y, level->player.type);
			drawEnemies(level);
			drawBullets(level);
			memcpy((char*)LCD_FRAME_BUFFER,(char*)LCD_TEMP_BUFFER, 153600); // write temp buffer to fram buffer
			
		}
		
		level->playerDamaged = FALSE;
	} else {
		
		drawBackground(&(level->stars));
		drawGameInfo(game, level);
		drawShip(level->player.currPos.x, level->player.currPos.y, level->player.type);
		drawEnemies(level);
		drawBullets(level);
		memcpy((char*)LCD_FRAME_BUFFER,(char*)LCD_TEMP_BUFFER, 153600); // write temp buffer to fram buffer
		i++;
	}
	
	
}
Пример #2
0
void CGame::render()
{
	frameLimiter++;
	Window::Clear();
	switch (gamestate)
	{
	case GAME:
		drawTiles();

		handleShots();
		drawPowerups();
		drawEnemies();
		drawEnemyShells();

		drawBottomBar();
		plane.show(clip_image);
		break;
	case START:
		drawMenus();
		break;
	case GAMEOVER:
		drawGameOverScreen();
		break;
	}
	Window::Present();
	if (timer.Ticks() > 1000)
	{
		Window::ChangeWindowTitle("FPS: " + std::to_string(frameLimiter));
		timer.Restart();
		frameLimiter = 0;
	}
	if (frameLimiter > 60) { SDL_Delay(20); }
}
void renderScene() {



    // Set the colour behind our skybox
    if (disco) {
        // Every 10 ticks
        if (lastTickCount%10==0) glClearColor((float)1000/rand(),(float)1000/rand(),(float)1000/rand(),1.0);
    } else {
        glClearColor(0.0,0.0,0.0,1.0);
    }
    glColorMaterial(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE);
    // Clear framebuffer & depth buffer
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);



    // Reset Modelview matrix
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();


    skybox();
    drawText();

    if (thirdPerson) character();
    keyboardMovement();
    if (intro) {
        drawIntro();
    } else {
        camera();
    }
    drawEnemies();
    if (fire) fireBullets();

    // Draw textured tetrahedron
    glEnable(GL_TEXTURE_2D);
    glColor3f(1.0,1.0,1.0);
    glBindTexture(GL_TEXTURE_2D,textureId);

    // Draw Dungarvan
    glPushMatrix();

    dungarvan->draw();

    glDisable(GL_TEXTURE_2D);
    glPopMatrix();



    // Swap double buffer for flicker-free animation
    glutSwapBuffers();

}
Пример #4
0
bool drawGame()
{
    arduboy.clear();
    drawScore();
    drawLives();
    drawEnemies();
    if(player.alive)
        drawPlayer();
    drawSupply();
    drawBullets();
    drawStars();
    bool finished = drawExplosions();
    arduboy.display();
    return finished;
}