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++; } }
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(); }
bool drawGame() { arduboy.clear(); drawScore(); drawLives(); drawEnemies(); if(player.alive) drawPlayer(); drawSupply(); drawBullets(); drawStars(); bool finished = drawExplosions(); arduboy.display(); return finished; }