>>HOMEPAGE

    Home     Manual       Relatório Técnico         Código Fonte         Downloads        Links Úteis


//==================================================================
// Projeto: Batalha Naval
// Por: Renata Corrêa - Silmara Pedretti Gomes
// Versão: 0.3
// Disciplina: IA725 - Profa. Ting
// Julho/2004
//==================================================================

#pragma hdrstop

//---------------------------------------------------------------------------

#pragma argsused
#include <windows.h>
#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glut.h>
#include <stdio.h>
#include <math.h>
#include <time.h>
#include "objetos.h"
#include "var.h"

int LoadBMP(char *filename);
int tx;

//=======================================================================================
void init(void)
{
int x, i;

tx=0;

glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
glColor3f(1.0,1.0,1.0);

EhDia = 1;
ConfiguraIluminacao();
ConfiguraTextura();

//->zerando as variáveis de controle de jogo
chrFim[0]='0';
chrFim[1]='0';
chrFim[2]='0';

//inicializando a matriz das posições do plano com 0
memset(plano, '0', sizeof(plano));

//Posiciona as embarcações
PosicionaEmbarc();
time(&hor_ini);

glEnable(GL_DEPTH_TEST);
glShadeModel(GL_FLAT);
glDepthRange(0.1, 530.0);


}
//=======================================================================================
void display(void)
{
/* Habilita a textura e cria a esfera */
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glBindTexture ( GL_TEXTURE_2D, texture_id[txId_Metal1] );

glPushMatrix();
glBegin(GL_QUADS);
glTexCoord2f(1.0f, 0.0f); glVertex3f( 1.0f, -1.0f, -1.0f);
glTexCoord2f(1.0f, 1.0f); glVertex3f( 1.0f, 1.0f, -1.0f);
glTexCoord2f(0.0f, 1.0f); glVertex3f( 1.0f, 1.0f, 1.0f);
glTexCoord2f(0.0f, 0.0f); glVertex3f( 1.0f, -1.0f, 1.0f);
glEnd();

glPopMatrix();
glutSwapBuffers();
glBindTexture ( GL_TEXTURE_2D, 0 );
}

//=======================================================================================

void reshape2 (int w, int h)
{

glViewport (0, 0, (GLsizei) w, (GLsizei) h);
glMatrixMode (GL_PROJECTION);
glLoadIdentity ();
gluPerspective(60.0, (GLfloat) w/(GLfloat) h, 1.0, 20.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt (0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);
}

//=======================================================================================
void reshape(int width, int height){

WIDTH=width;
HEIGHT=height;
w0 = width;
h0 = height;

glViewport(0,0,(GLint)width,(GLint)height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(70.0,width/(float)height,0.1,30.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity(); //SP
gluLookAt (0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);

}


//=======================================================================================
int main(int argc, char** argv)
{
glutInitWindowPosition(0,0);
glutInitWindowSize(WIDTH,HEIGHT);
glutInit(&argc,argv);
glutInitDisplayMode ( GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGB );
if(!glutCreateWindow("Batalha Naval")) {
fprintf(stderr,"Error opening a window.\n"); exit(-1);
}
init();
glutDisplayFunc(desenha);
glutReshapeFunc(reshape);
glutKeyboardFunc(teclado);
glutMouseFunc(GerenciaMouse);
glutSpecialFunc(especial);
glutPostRedisplay();
glutMainLoop();

return(0);
}


//---------------------------------------------------------------------------