void Engine::paintGL() { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glLoadIdentity(); glTranslatef(0.0f, 2.0f, -15.0f); glRotatef(xAngle, 1.0f, 0.0f, 0.0f); glRotatef(yAngle, 0.0f, 1.0f, 0.0f); glScalef(scale, scale, scale); drawSea(SEA_SIZE); glColor3f(1,0,0); this->renderText(-23, 2, -15.0f, QString("Player 1")); this->renderText(-24, 1.1f, -15.0f, getHitpoints(&player1)); glColor3f(0,0,1); this->renderText(19, 2, -15.0f, QString("Player 2")); this->renderText(20, 1.1f, -15.0f, getHitpoints(&player2)); glColor3f(1,1,0); this->renderText(-0.5d, 1.0d, 1.0d, pauseText); glColor3f(0,1,0); this->renderText(-2.5d, 1.0d, -1.0d, checkForWinner()); this->renderText(-4.5d, 1.0d, 1.0d, newGameText); glPushMatrix(); glTranslatef(player1.xPos, 0, player1.zPos); glRotatef(player1.yAngle, 0, 1, 0); player1.draw(1, 0, 0); glPopMatrix(); glPushMatrix(); glTranslatef(player2.xPos, 0, player2.zPos); glRotatef(player2.yAngle, 0, 1, 0); player2.draw(0, 0, 1); glPopMatrix(); Missile* m; foreach(m, missilesList) { glPushMatrix(); glTranslatef(m->x, 0.4, m->z); glRotatef(m->angle, 0, 1, 0); m->draw(); glPopMatrix(); }
void display() { displayPrev = displayCurrent; displayCurrent = clock(); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); if (drawHeightmapFlag){ drawHeightmap(); glutSwapBuffers(); return; } if (drawFogFlag){ glEnable(GL_FOG); glFogf(GL_FOG_MODE, GL_EXP); glFogf(GL_FOG_DENSITY, 0.008); GLfloat fogColor[4] = { 0.3f, 0.3f, 0.3f, 1.0f }; // Fog Color glFogfv(GL_FOG_COLOR, fogColor); } else{ glDisable(GL_FOG); } //Vale tin kamera glLoadIdentity(); gluLookAt(cameraPosition[0], cameraPosition[1], cameraPosition[2], 0, 0, 0, 0, 1, 0); //Draw Skybox if (drawSkyboxFlag){ drawSkybox(); } // Draw Terrain drawTerrain(); //Draw Sea if (drawSeaFlag){ drawSea(); } drawSun(); //Add Light glEnable(GL_NORMALIZE); glEnable(GL_LINEAR_ATTENUATION); glShadeModel(GL_SMOOTH); float zeros[3] = { 0, 0, 0 }; glMaterialfv(GL_FRONT, GL_EMISSION, zeros); GLfloat lightPos[] = { lightPosition[0], lightPosition[1], lightPosition[2], 1 }; glLightfv(GL_LIGHT0, GL_POSITION, lightPos); glutSwapBuffers(); }