Пример #1
0
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();
    }
Пример #2
0
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();
}