static void draw(void) { drawBackground(background); drawStars(); blit(earthTexture, earth.x, earth.y, 1); drawFighters(); drawEffects(); blit(logo, SCREEN_WIDTH / 2, 50, 1); blit(pandoranWar, SCREEN_WIDTH / 2, 110, 1); drawText(10, SCREEN_HEIGHT - 25, 14, TA_LEFT, colors.white, "Copyright Parallel Realities, 2015-2016"); drawText(SCREEN_WIDTH - 10, SCREEN_HEIGHT - 25, 14, TA_RIGHT, colors.white, "Version %.2f.%d", VERSION, REVISION); switch (show) { case SHOW_TITLE: drawWidgets("title"); break; case SHOW_STATS: drawStats(); break; case SHOW_OPTIONS: drawOptions(); break; } }
/* ********************************** @ Implemented by Daniel Santos & Hung Q Nguyen @ Note: * ***********************************/ void Universe::Universe::run() { while (window_.isOpen() && elapsedTime_ < uni_total_times) { sf::Event event; while (window_.pollEvent(event)) { switch (event.type) { case sf::Event::Closed: window_.close(); break; case sf::Event::KeyPressed: shipMove(event.key); break; default: break; } } window_.clear(); // Update and draw checkClickOnSprite(); updateDialog(selectedPlanet_); updateUniverse(); window_.draw(dialogBox_); window_.draw(dialogText_); window_.draw(textTime_); drawStars(); window_.draw(*ship_); window_.display(); // Update current updateTime(step_time); } printState(); }
bool drawGame() { arduboy.clear(); drawScore(); drawLives(); drawEnemies(); if(player.alive) drawPlayer(); drawSupply(); drawBullets(); drawStars(); bool finished = drawExplosions(); arduboy.display(); return finished; }
void starBurst::draw(float lerp, HyperspaceSaverSettings *inSettings){ drawStars(inSettings); size += inSettings->frameTime * 0.5f; if(size >= 3.0f) return; // draw flare float brightness = 1.0f - (size * 0.333333f); if(brightness > 0.0f){ float p[3]; p[0] = pos[0]; p[1] = pos[1]; p[2] = pos[2]; flare(p, 1.0f, 1.0f, 1.0f, brightness, inSettings); } glMatrixMode(GL_MODELVIEW); glPushMatrix(); glTranslatef(pos[0], pos[1], pos[2]); glScalef(size, size, size); // draw sphere glDisable(GL_TEXTURE_2D); glEnable(GL_TEXTURE_CUBE_MAP_ARB); glActiveTextureARB(GL_TEXTURE2_ARB); glBindTexture(GL_TEXTURE_CUBE_MAP_ARB, inSettings->nebulatex); glActiveTextureARB(GL_TEXTURE1_ARB); glBindTexture(GL_TEXTURE_CUBE_MAP_ARB, inSettings->theWNCM->texture[(inSettings->whichTexture + 1) % inSettings->numAnimTexFrames]); glActiveTextureARB(GL_TEXTURE0_ARB); glBindTexture(GL_TEXTURE_CUBE_MAP_ARB, inSettings->theWNCM->texture[inSettings->whichTexture]); glUseProgramObjectARB(gooProgram); glBlendFunc(GL_SRC_ALPHA, GL_ONE); glEnable(GL_BLEND); glColor4f(brightness, brightness, brightness, lerp); glCallList(call_list); glDisable(GL_TEXTURE_CUBE_MAP_ARB); glUseProgramObjectARB(0); glPopMatrix(); }
/* draw display */ void display(void) { glClear(GL_COLOR_BUFFER_BIT); float center[2]; center[0]=600; center[1]=400; drawGreenTriangles(); drawRedTriangles(); glColor3f(1,1,1); drawCircle(center, 150); drawStars(center); drawFlageOutline(); burundi(); glFlush(); }
static void draw(void) { drawBackground(background); blit(planetTexture, planet.x, planet.y, 1); drawStars(); drawText(SCREEN_WIDTH / 2, 40, 28, TA_CENTER, colors.white, CHALLENGES_TEXT); drawText(SCREEN_WIDTH / 2, 83, 16, TA_CENTER, colors.lightGrey, COMPLETED_TEXT, game.completedChallenges, game.totalChallenges); drawText(SCREEN_WIDTH / 2, 110, 16, TA_CENTER, colors.lightGrey, PAGE_TEXT, page + 1, (int)maxPages); drawChallenges(); switch (show) { case SHOW_CHALLENGES: drawWidgets("challenges"); break; case SHOW_MENU: drawMenu(); break; case SHOW_STATS: drawStats(); break; case SHOW_TROPHIES: drawTrophies(); break; case SHOW_OPTIONS: drawOptions(); break; case SHOW_FIGHTER_DB: drawFighterDatabase(); break; } }
void starBurst::draw(HyperspaceSaverSettings *inSettings){ drawStars(inSettings); size += inSettings->frameTime * 0.5f; if(size >= 3.0f) return; // draw flare float brightness = 1.0f - (size * 0.333333f); if(brightness > 0.0f){ float p[3]; p[0] = pos[0]; p[1] = pos[1]; p[2] = pos[2]; flare(p, 1.0f, 1.0f, 1.0f, brightness, inSettings); } glMatrixMode(GL_MODELVIEW); glPushMatrix(); glTranslatef(pos[0], pos[1], pos[2]); glScalef(size, size, size); // draw sphere glBindTexture(GL_TEXTURE_2D, inSettings->nebulatex); glEnable(GL_TEXTURE_2D); glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP); glTexGeni(GL_T, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP); glEnable(GL_TEXTURE_GEN_S); glEnable(GL_TEXTURE_GEN_T); glBlendFunc(GL_SRC_ALPHA, GL_ONE); glEnable(GL_BLEND); glColor4f(brightness, brightness, brightness, 1.0f); glCallList(call_list); glDisable(GL_TEXTURE_GEN_S); glDisable(GL_TEXTURE_GEN_T); glPopMatrix(); }
void drawScene(void) { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); glLoadIdentity(); gluLookAt(camera.x, camera.y, camera.z, 0, 0, 0, 0, 1, 0); glMatrixMode(GL_MODELVIEW); drawStars(); glLightfv(GL_LIGHT0, GL_AMBIENT, light1_ambient); glLightfv(GL_LIGHT0, GL_SPECULAR, light1_specular); // Draw the sun glLightfv(GL_LIGHT0, GL_POSITION, spotPos); glDisable(GL_LIGHTING); glPushMatrix(); glColor3f(1, 1, 0.2); glMaterialfv(GL_FRONT_AND_BACK, GL_EMISSION, aMaterial); glutSolidSphere(2, 30, 30); glPopMatrix(); glEnable(GL_LIGHTING); // Draw Mercury glColor3f(0.8, 0.4, 0.0); drawOrbit(3, 7); glPushMatrix(); glRotatef(3, 1, 0, 0); glPushMatrix(); glColor3f(0.8, 0.4, 0.0); glRotatef(t * 0.047, 0,1, 0); glTranslatef(0, 0, 7); drawString(0, 0, 0, "Mercury"); glutSolidSphere(0.3, RES_PLANET, RES_PLANET); glPopMatrix(); glPopMatrix(); // Draw Venus glColor3f(0.28, 0.46, 1.0); drawOrbit(9, 10); glPushMatrix(); glRotatef(9,1, 0, 0); glPushMatrix(); glColor3f(0.28, 0.46, 1.0); glRotatef(t * 0.035, 0, 1, 0); glTranslatef(0, 0, 10); drawString(0, 0, 0, "Venus"); glutSolidSphere(0.7, RES_PLANET, RES_PLANET); glPopMatrix(); glPopMatrix(); // Draw The Earth glColor3f(0.15, 0.25, 0.54); drawOrbit(8, 13); glPushMatrix(); glRotatef(8, 1, 0, 0); glPushMatrix(); glColor3f(0.15, 0.25, 0.54); glRotatef(t * 0.029, 0, 1, 0); glTranslatef(0, 0, 13); drawString(0, 0, 0, "Earth"); glutSolidSphere(0.7, RES_PLANET, RES_PLANET); glPopMatrix(); glPopMatrix(); // Draw Mars glColor3f(1, 0.0, 0.0); drawOrbit(5, 16); glPushMatrix(); glRotatef(5, 1, 0, 0); glPushMatrix(); glColor3f(1, 0.0, 0.0); glRotatef(t * 0.024, 0, 1, 0); glTranslatef(0, 0, 16); drawString(0, 0, 0, "Mars"); glutSolidSphere(0.6, RES_PLANET, RES_PLANET); glPopMatrix(); glPopMatrix(); // Draw Jupiter glColor3f(0.8, 0.58, 0.047); drawOrbit(8, 24); glPushMatrix(); glRotatef(8, 1, 0, 0); glPushMatrix(); glColor3f(0.8, 0.58, 0.047); glRotatef(t * 0.013, 0, 1, 0); glTranslatef(0, 0, 24); drawString(0, 0, 0, "Jupiter"); glutSolidSphere(1.2, RES_PLANET,RES_PLANET); glPopMatrix(); glPopMatrix(); // Draw Saturn glColor3f(0.8, 0.58, 0.047); drawOrbit(5, 30); glPushMatrix(); glRotatef(5, 1, 0, 0); glPushMatrix(); glColor3f(0.6, 0.4, 0.030); glRotatef(t * 0.009, 0, 1, 0); glTranslatef(0, 0, 30); glRotatef(90, 1, 0.5, 0); glScalef(1, 1, 0.1); glutSolidTorus(0.6, 1.8, 5, 50); glPopMatrix(); glPushMatrix(); glColor3f(0.8, 0.58, 0.047); glRotatef(t * 0.009, 0, 1, 0); glTranslatef(0, 0, 30); drawString(0, 0, 0, "Saturn"); glutSolidSphere(1, RES_PLANET, RES_PLANET); glPopMatrix(); glPopMatrix(); // Draw Uranus glColor3f(0, 0.1, 1); drawOrbit(7, 40); glPushMatrix(); glRotatef(7, 1, 0, 0); glPushMatrix(); glColor3f(0, 0.1, 1); glRotatef(t * 0.006, 0, 1, 0); glTranslatef(0, 0, 40); glRotatef(3, 1, 0.5, 0); glScalef(1, 1, 0.1); glutSolidTorus(0.1, 1, 5, 50); glPopMatrix(); glPushMatrix(); glColor3f(0, 0.6, 0.8); glRotatef(t * 0.006, 0, 1, 0); glTranslatef(0, 0, 40); drawString(0, 0, 0, "Uranus"); glutSolidSphere(0.7, RES_PLANET, RES_PLANET); glPopMatrix(); glPopMatrix(); // Draw Neptune glColor3f(0.0, 0.89, 0.93); drawOrbit(8, 48); glPushMatrix(); glRotatef(8, 1, 0, 0); glPushMatrix(); glColor3f(0.0, 0.89, 0.93); glRotatef(t * 0.005, 0, 1, 0); glTranslatef(0, 0, 48); drawString(0, 0, 0, "Neptune"); glutSolidSphere(0.7, RES_PLANET, RES_PLANET); glPopMatrix(); glPopMatrix(); // Almost forgot, let's draw the Moon! glPushMatrix(); glRotatef(8,1,0,0); glPushMatrix(); glColor3f(0.7,0.8,0.8); glRotatef(t*0.029,0,1,0); glTranslatef(0,0,13); glPushMatrix(); glRotatef(t*0.348,0,1,0); glTranslatef(0,0,1.3); glutSolidSphere(0.1,RES_PLANET,10); glPopMatrix(); glPopMatrix(); glPopMatrix(); //Sorry Pluto, you're not a planet anymore :( // Meteors drawMeteors(); if (a < -500) { a = -20; } glutSwapBuffers(); }
static void drawScene() { ++fps_counter; glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); const mn::gl::Camera &camera = *mn::gl::Camera::camera; const mn::gl::Vector<float> &eye = camera.getEye(); { pushMatrix pm; camera.doRotate(); drawStars(); camera.doMove(); glEnable(GL_DEPTH_TEST); glEnable(GL_CULL_FACE); glEnable(GL_LIGHTING); sun->draw(mn::gl::Camera::ticks, mn::gl::Vector<float>(0, 0, 0)); glDisable(GL_LIGHTING); glDisable(GL_CULL_FACE); glDisable(GL_DEPTH_TEST); } { pushMatrix pm; glTranslatef(-0.4 * mn::gl::Camera::aspect(), -0.4, -1.2); camera.doRotate(); glBegin(GL_LINES); glColor3f(1, 0, 0); glVertex3f(0, 0, 0); glVertex3f(0.05, 0, 0); glColor3f(0, 1, 0); glVertex3f(0, 0, 0); glVertex3f(0, 0.05, 0); glColor3f(0, 0, 1); glVertex3f(0, 0, 0); glVertex3f(0, 0, 0.05); glEnd(); } glMatrixMode(GL_PROJECTION); glPushMatrix(); glLoadIdentity(); glOrtho(-mn::gl::Camera::aspect(), mn::gl::Camera::aspect(), -1,1, -1,1); glMatrixMode(GL_MODELVIEW); glColor3f(0, 0.5, 0); glBegin(GL_LINES); glVertex3f(-0.01, 0.01, 0); glVertex3f(-0.02, 0.02, 0); glVertex3f(-0.01, -0.01, 0); glVertex3f(-0.02, -0.02, 0); glVertex3f( 0.01, -0.01, 0); glVertex3f( 0.02, -0.02, 0); glVertex3f( 0.01, 0.01, 0); glVertex3f( 0.02, 0.02, 0); glEnd(); glTranslatef(0.1-mn::gl::Camera::aspect(), 0.9, 0); glScalef(0.03, 0.03, 0.03); char buffer[1024]; sprintf(buffer, "position = (%6.2f, %6.2f, %6.2f)\ndistance = %6.2f\nrotation = (%2.2f, %2.2f, %2.2f)\nfps = %3.1f\nspeed = %lu", eye.x, eye.y, eye.z, eye.length(), camera.getRotX() * MN_180_PI, camera.getRotY() * MN_180_PI, 0.0, fps, mn::gl::Camera::countTicks * mn::gl::Camera::tickIncrement); glColor3f(1, 1, 1); t3d::draw2D(std::string(buffer), -1, -1); glMatrixMode(GL_PROJECTION); glPopMatrix(); glutSwapBuffers(); }
//-------------------------------------------------- void Skybox::render(bool activateShaders) { Shader::disable(); //configuration: float skySize = 30000.0f; float sunOrbit = 28000.0f; float orbitBias = 0.05f; float orbitRotation = 0.1f; int numberOfStars = 1000; //Rotate the sun ---------------------------------------- Vector3f sunPosition = Vector3f(sunOrbit, 0.0f, 0.0f); Matrix3f m3 = Matrix3f::createRotationAroundAxis(0.0f, orbitRotation * 2.0f * (float)M_PI, 0.0f); Matrix3f m1 = Matrix3f::createRotationAroundAxis(0.0f, 0.0f, dayTime * 2.0f * (float)M_PI); Matrix3f m2 = Matrix3f::createRotationAroundAxis(orbitBias * 2.0f * (float)M_PI, 0.0f, 0.0f); sunPosition = m1 * sunPosition; sunPosition = m2 * sunPosition; sunPosition = m3 * sunPosition; //direction: sunDirection = sunPosition; sunDirection.normalize(); //sky colors: Vector4f blue = Vector4f(0.2f, 0.4f, 0.8f, 1.0f); Vector4f white = Vector4f(0.52f, 0.63f, 0.87f, 1.0f); Vector4f orange = Vector4f(0.75f, 0.35f, 0.0f, 1.0f); Vector4f red = Vector4f(0.85f, 0.15f, 0.0f, 1.0f); Vector4f black = Vector4f(0.0f, 0.0f, 0.0f, 0.0f); //mix sky colors: Vector4f color1 = Vector4f(0.0f, 0.0f, 0.0f, 0.0f); Vector4f color2 = Vector4f(0.0f, 0.0f, 0.0f, 0.0f); float d = sunDirection.y; if (d >= 0.3f) { color1 = blue; color2 = white; } else { if (d >= 0.2f) { color1 = blue * (d - 0.2f) * 10.0f + orange * (1 - (d - 0.2f) * 10.0f); color2 = white * (d - 0.2f) * 10.0f + red * (1 - (d - 0.2f) * 10.0f); } else { color1 = orange * d * 5.0f + black * (1 - d * 5.0f); color2 = red * d * 5.0f + black * (1 - d * 5.0f); } } //weapon (this is an easter egg) /*glPushMatrix(); glLoadIdentity(); glRotatef(20.0, 0, 0, 1); glRotatef(-20.0, 1, 0, 0); glTranslatef(20.0, 10.0, -50.0); weapon->showS(); glPopMatrix();*/ //draw everything ------------------------------------------ glPushMatrix(); glPushAttrib(GL_ENABLE_BIT); glDisable(GL_LIGHTING); glDisable(GL_TEXTURE_2D); glEnable(GL_POINT_SMOOTH); resetTranslation(); drawStars(numberOfStars); drawSky(skySize, color1, color2); drawSun(sunPosition); //restore matrix and attributes glPopAttrib(); glPopMatrix(); Shader::useDefaultShader(); }