⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.cpp

📁 Zodspark is a Car racing simulation game built on VC++ using opengl library
💻 CPP
📖 第 1 页 / 共 5 页
字号:
	glBegin(GL_QUADS);
		glTexCoord2f(0.0f, 0.0f);	glVertex3f(100.0, 0.0f, -90.0);
		glTexCoord2f(1.0f, 0.0f);	glVertex3f(100.0, 40.0f, -90.0);
		glTexCoord2f(1.0f, 1.0f);	glVertex3f(-100.0, 40.0f, -90.0);
		glTexCoord2f(0.0f, 1.0f);	glVertex3f(-100.0, 0.0f,-90.0);
		glEnd();//*/
		tex3++;
		//RenderScene();
	}
}
void RenderScene() 
{
	//glClearColo r(0.0f, 255.0f, 255.0f, 0.0f);
//if(v>15)
//v=12;
//glClearColor(0.0f, 0.0f, 0.0f, 0.0f);

/*if(tex3>9 && tex3 <=19)
{glBindTexture(GL_TEXTURE_2D, texture[17+tex3]);
	glBegin(GL_QUADS);
		glTexCoord2f(0.0f, 0.0f);	glVertex3f(10.0, -5.0f, -100.0);
		glTexCoord2f(1.0f, 0.0f);	glVertex3f(10.0, 5.0f, -100.0);
		glTexCoord2f(1.0f, 1.0f);	glVertex3f(-10.0, 5.0f, -100.0);
		glTexCoord2f(0.0f, 1.0f);	glVertex3f(-10.0, -5.0f,-100.0);
	glEnd();
}
if(tex3>19 && tex3 <=29)
{glBindTexture(GL_TEXTURE_2D, texture[7+tex3]);
	glBegin(GL_QUADS);
		glTexCoord2f(0.0f, 0.0f);	glVertex3f(10.0, -5.0f, -100.0);
		glTexCoord2f(1.0f, 0.0f);	glVertex3f(10.0, 5.0f, -100.0);
		glTexCoord2f(1.0f, 1.0f);	glVertex3f(-10.0, 5.0f, -100.0);
		glTexCoord2f(0.0f, 1.0f);	glVertex3f(-10.0, -5.0f,-100.0);
	glEnd();*/
if(tex2<=200)
{
	glBindTexture(GL_TEXTURE_2D, texture[26]);
	glBegin(GL_QUADS);
		glTexCoord2f(0.0f, 0.0f);	glVertex3f(65.0, -40.0f, -90.0);
		glTexCoord2f(1.0f, 0.0f);	glVertex3f(65.0, 40.0f, -90.0);
		glTexCoord2f(1.0f, 1.0f);	glVertex3f(-90.0, 40.0f, -90.0);
		glTexCoord2f(0.0f, 1.0f);	glVertex3f(-90.0, -40.0f,-90.0);
		glEnd();
		//sleep(20000);
}
else
{

if(st.position.x>-100 && st.position.x <100 && st.position.z>1 && st.position.z <40)
nj=nj+1;
if(nj==3)
exit(1);

	bbox *bbArray=NULL;
	cvector bb1;
	bb1.x=0;
	bb1.z=0;
	cvector bb2;
	bb2.x=0;
	bb2.z=0;
	cvector bb3;
	bb3.x=0;
	bb3.z=0;
	cvector bb4;
	bb4.x=0;
	bb4.z=0;
	//if(Inside_BoundingBox(st.position.x,st.position.z-30))
	//				v=0;
	if(o==-1||o==0)
	{
	
		v=v+a*0.016;
	}
	if(o==-1 && v<0&&v>-1)
		v=0;
	if(o==0 && v>0&&v<-1)
		v=0;
	//t=1/FPS();
	//st.acceleration=calc_acc(a,angle);
	//st.velocity=setv(v,angle);
	//st.position=calc_position(st.velocity,0.016*10,st.position,st.acceleration);
	if(deltaAngle)
	{
		st.position.z=st.position.z-v*cos(deltaAngle*1.5/90*angle)*1.6;
		st.position.x=st.position.x+v*sin(deltaAngle*1.5/90*angle)*1.6;
	}
	else
		st.position.z=st.position.z-v*1.6;
	
	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);	// Clear The Screen And The Depth Buffer
	glLoadIdentity();									// Reset The matrix
//////////// *** NEW *** ////////// *** NEW *** ///////////// *** NEW *** ////////////////////
	// Give OpenGL our position,	then view,		then up vector
	// We want the model to rotate around the axis so we give it a rotation
	// value, then increase/decrease it. You can rotate right of left with the arrow keys.

//	glRotatef(g_RotateX, 0, 1.0f, 0);						// Rotate the object around the Y-Axis
//	g_RotateX += g_RotationSpeed;							// Increase the speed of rotation

	

	// Since we know how many objects our model has, go through each of them.
	//glTranslated(0,0,0);`
move=38.5;
	gluLookAt(-60*sin(deltaAngle/move)+st.position.x, 25.5f,10+60*cos(deltaAngle/move)+st.position.z,		st.position.x+20*sin(deltaAngle/move), 15.5f, st.position.z-20*cos(deltaAngle/move),			0, 1, 0);
	/*if(y==1)
		gluLookAt(0+st.position.x, 25.5f, 60.0+st.position.z,		st.position.x, 15.5f, st.position.z+20,			0, 1, 0);
	if(y==2)
		gluLookAt(15+ st.position.x,25.5f, 60+st.position.z,	st.position.x-5, 15.5f,st.position.z+10,  0,1,0);
	if(y==3)
		gluLookAt(30+ st.position.x,25.5f, st.position.z,	st.position.x-20, 15.5f,st.position.z,  0,1,0);
*///	gluLookAt(0,0,5,0,0,,0,1,0);
glBindTexture(GL_TEXTURE_2D, texture[17]);

	glBegin(GL_QUADS);
		glTexCoord2f(0.0f, 0.0f);	glVertex3f(50.0, 0.0f, -100.0);
		glTexCoord2f(1.0f, 0.0f);	glVertex3f(50.0, 0.0f, -120.0);
		glTexCoord2f(1.0f, 1.0f);	glVertex3f(-50.0, 0.0f, -120.0);
		glTexCoord2f(0.0f, 1.0f);	glVertex3f(-50.0, 0.0f, -100.0);
	glEnd();

	glBindTexture(GL_TEXTURE_2D, texture[18]);

	glBegin(GL_QUADS);
		glTexCoord2f(0.0f, 0.0f);	glVertex3f(100.0, 0.0f, 130.0);
		glTexCoord2f(1.0f, 0.0f);	glVertex3f(100.0, 0.0f, 160.0);
		glTexCoord2f(1.0f, 1.0f);	glVertex3f(130.0, 0.0f, 160.0);
		glTexCoord2f(0.0f, 1.0f);	glVertex3f(130.0, 0.0f, 130.0);
	glEnd();

//Making Grass Fields
glBindTexture(GL_TEXTURE_2D, texture[3]);
	glBegin(GL_QUADS);
		glTexCoord2f(0.0f, 0.0f);	glVertex3f(-1000.0, 0.0f, -4500.0-7*19*100);
		glTexCoord2f(1.0f, 0.0f);	glVertex3f(-500.0, 0.0f, -4500.0-7*19*100);
		glTexCoord2f(1.0f, 1.0f);	glVertex3f(-500.0, 0.0f,-2500.0-7*19*100);
		glTexCoord2f(0.0f, 1.0f);	glVertex3f(-1000.0, 0.0f, -2500.0-7*19*100);
	glEnd();

glBegin(GL_QUADS);
		glTexCoord2f(0.0f, 0.0f);	glVertex3f(-1000.0, 0.0f, -2500.0-7*19*100);
		glTexCoord2f(1.0f, 0.0f);	glVertex3f(-500.0, 0.0f, -2500.0-7*19*100);
		glTexCoord2f(1.0f, 1.0f);	glVertex3f(-500.0, 0.0f,-1100.0-7*19*100);
		glTexCoord2f(0.0f, 1.0f);	glVertex3f(-100.0, 0.0f, -1100.0-7*19*100);
	glEnd();

	glBegin(GL_QUADS);
		glTexCoord2f(0.0f, 0.0f);	glVertex3f(-500.0, 0.0f, -4500.0-7*19*100);
		glTexCoord2f(1.0f, 0.0f);	glVertex3f(0.0, 0.0f, -4500.0-7*19*100);
		glTexCoord2f(1.0f, 1.0f);	glVertex3f(0.0, 0.0f,-3000.0-7*19*100);
		glTexCoord2f(0.0f, 1.0f);	glVertex3f(-500.0, 0.0f, -3000.0-7*19*100);
	glEnd();

glBegin(GL_QUADS);
		glTexCoord2f(0.0f, 0.0f);	glVertex3f(-500.0, 0.0f, -3000.0-7*19*100);
		glTexCoord2f(1.0f, 0.0f);	glVertex3f(0.0, 0.0f, -3000.0-7*19*100);
		glTexCoord2f(1.0f, 1.0f);	glVertex3f(0.0, 0.0f,-1100.0-7*19*100);
		glTexCoord2f(0.0f, 1.0f);	glVertex3f(-500.0, 0.0f, -1100.0-7*19*100);
	glEnd();
glBegin(GL_QUADS);
		glTexCoord2f(0.0f, 0.0f);	glVertex3f(0.0, 0.0f, -4500.0-7*19*100);
		glTexCoord2f(1.0f, 0.0f);	glVertex3f(500.0, 0.0f, -4500.0-7*19*100);
		glTexCoord2f(1.0f, 1.0f);	glVertex3f(500.0, 0.0f,-3000.0-7*19*100);
		glTexCoord2f(0.0f, 1.0f);	glVertex3f(0.0, 0.0f, -3000.0-7*19*100);
	glEnd();

glBegin(GL_QUADS);
		glTexCoord2f(0.0f, 0.0f);	glVertex3f(0.0, 0.0f, -3000.0-7*19*100);
		glTexCoord2f(1.0f, 0.0f);	glVertex3f(500.0, 0.0f, -3000.0-7*19*100);
		glTexCoord2f(1.0f, 1.0f);	glVertex3f(500.0, 0.0f,-1100.0-7*19*100);
		glTexCoord2f(0.0f, 1.0f);	glVertex3f(0.0, 0.0f, -1100.0-7*19*100);
	glEnd();

glBegin(GL_QUADS);
		glTexCoord2f(0.0f, 0.0f);	glVertex3f(500.0, 0.0f, -4500.0-7*19*100);
		glTexCoord2f(1.0f, 0.0f);	glVertex3f(1000.0, 0.0f, -4500.0-7*19*100);
		glTexCoord2f(1.0f, 1.0f);	glVertex3f(1000.0, 0.0f,-3000.0-7*19*100);
		glTexCoord2f(0.0f, 1.0f);	glVertex3f(500.0, 0.0f, -3000.0-7*19*100);
	glEnd();

glBegin(GL_QUADS);
		glTexCoord2f(0.0f, 0.0f);	glVertex3f(500.0, 0.0f, -3000.0-7*19*100);
		glTexCoord2f(1.0f, 0.0f);	glVertex3f(1000.0, 0.0f, -3000.0-7*19*100);
		glTexCoord2f(1.0f, 1.0f);	glVertex3f(1000.0, 0.0f,-1100.0-7*19*100);
		glTexCoord2f(0.0f, 1.0f);	glVertex3f(500.0, 0.0f, -1100.0-7*19*100);
	glEnd();

	glBegin(GL_QUADS);
		glTexCoord2f(0.0f, 0.0f);	glVertex3f(1000.0, 0.0f, -4500.0-7*19*100);
		glTexCoord2f(1.0f, 0.0f);	glVertex3f(1500.0, 0.0f, -4500.0-7*19*100);
		glTexCoord2f(1.0f, 1.0f);	glVertex3f(1500.0, 0.0f,-3000.0-7*19*100);
		glTexCoord2f(0.0f, 1.0f);	glVertex3f(1000.0, 0.0f, -3000.0-7*19*100);
	glEnd();

glBegin(GL_QUADS);
		glTexCoord2f(0.0f, 0.0f);	glVertex3f(1000.0, 0.0f, -3000.0-7*19*100);
		glTexCoord2f(1.0f, 0.0f);	glVertex3f(1500.0, 0.0f, -3000.0-7*19*100);
		glTexCoord2f(1.0f, 1.0f);	glVertex3f(1500.0, 0.0f,-1100.0-7*19*100);
		glTexCoord2f(0.0f, 1.0f);	glVertex3f(1000.0, 0.0f, -1100.0-7*19*100);
	glEnd();

	glBegin(GL_QUADS);
		glTexCoord2f(0.0f, 0.0f);	glVertex3f(1500.0, 0.0f, -2800.0-7*19*100);
		glTexCoord2f(1.0f, 0.0f);	glVertex3f(2000.0, 0.0f, -2300.0-7*19*100);
		glTexCoord2f(1.0f, 1.0f);	glVertex3f(2000.0, 0.0f,-1100.0-7*19*100);
		glTexCoord2f(0.0f, 1.0f);	glVertex3f(1500.0, 0.0f, -1100.0-7*19*100);
	glEnd();



//Making the City


glBindTexture(GL_TEXTURE_2D, texture[9]);

	glBegin(GL_QUADS);
		glTexCoord2f(0.0f, 0.0f);	glVertex3f(100.0, 0.0f, -1100.0-7*19*100);
		glTexCoord2f(1.0f, 0.0f);	glVertex3f(100.0, 160.0f, -1100.0-7*19*100);
		glTexCoord2f(1.0f, 1.0f);	glVertex3f(400.0, 160.0f, -1100.0-7*19*100);
		glTexCoord2f(0.0f, 1.0f);	glVertex3f(400.0, 0.0f, -1100.0-7*19*100);
	glEnd();

	glBindTexture(GL_TEXTURE_2D, texture[10]);

	glBegin(GL_QUADS);
		glTexCoord2f(0.0f, 0.0f);	glVertex3f(400.0, 0.0f, -1100.0-7*19*100);
		glTexCoord2f(1.0f, 0.0f);	glVertex3f(400.0, 160.0f, -1100.0-7*19*100);
		glTexCoord2f(1.0f, 1.0f);	glVertex3f(700.0, 160.0f, -1100.0-7*19*100);
		glTexCoord2f(0.0f, 1.0f);	glVertex3f(700.0, 0.0f, -1100.0-7*19*100);
	glEnd();
glBindTexture(GL_TEXTURE_2D, texture[11]);

	glBegin(GL_QUADS);
		glTexCoord2f(0.0f, 0.0f);	glVertex3f(700.0, 0.0f, -1100.0-7*19*100);
		glTexCoord2f(1.0f, 0.0f);	glVertex3f(700.0, 160.0f, -1100.0-7*19*100);
		glTexCoord2f(1.0f, 1.0f);	glVertex3f(1000.0, 160.0f, -1100.0-7*19*100);
		glTexCoord2f(0.0f, 1.0f);	glVertex3f(1000.0, 0.0f, -1100.0-7*19*100);
	glEnd();

glBindTexture(GL_TEXTURE_2D, texture[9]);

	glBegin(GL_QUADS);
		glTexCoord2f(0.0f, 0.0f);	glVertex3f(1000.0, 0.0f, -1100.0-7*19*100);
		glTexCoord2f(1.0f, 0.0f);	glVertex3f(1000.0, 160.0f, -1100.0-7*19*100);
		glTexCoord2f(1.0f, 1.0f);	glVertex3f(1300.0, 160.0f, -1100.0-7*19*100);
		glTexCoord2f(0.0f, 1.0f);	glVertex3f(1300.0, 0.0f, -1100.0-7*19*100);
	glEnd();

glBindTexture(GL_TEXTURE_2D, texture[10]);

	glBegin(GL_QUADS);
		glTexCoord2f(0.0f, 0.0f);	glVertex3f(1300.0, 0.0f, -1100.0-7*19*100);
		glTexCoord2f(1.0f, 0.0f);	glVertex3f(1300.0, 160.0f, -1100.0-7*19*100);
		glTexCoord2f(1.0f, 1.0f);	glVertex3f(1600.0, 160.0f, -1100.0-7*19*100);
		glTexCoord2f(0.0f, 1.0f);	glVertex3f(1600.0, 0.0f, -1100.0-7*19*100);
	glEnd();
glBindTexture(GL_TEXTURE_2D, texture[11]);

	glBegin(GL_QUADS);
		glTexCoord2f(0.0f, 0.0f);	glVertex3f(1600.0, 0.0f, -1100.0-7*19*100);
		glTexCoord2f(1.0f, 0.0f);	glVertex3f(1600.0, 160.0f, -1100.0-7*19*100);
		glTexCoord2f(1.0f, 1.0f);	glVertex3f(2000.0, 160.0f, -1100.0-7*19*100);
		glTexCoord2f(0.0f, 1.0f);	glVertex3f(2000.0, 0.0f, -1100.0-7*19*100);
	glEnd();


// another city view
for(int i=19;i>=0;i--)
{
	glBindTexture(GL_TEXTURE_2D, texture[9]);

	glBegin(GL_QUADS);
		glTexCoord2f(0.0f, 0.0f);	glVertex3f(2000.0, 0.0f, -1100.0-7*i*100);
		glTexCoord2f(1.0f, 0.0f);	glVertex3f(2000.0, 160.0f, -1100.0-7*i*100);
		glTexCoord2f(1.0f, 1.0f);	glVertex3f(2000.0, 160.0f, -700.0-7*i*100);
		glTexCoord2f(0.0f, 1.0f);	glVertex3f(2000.0, 0.0f, -700.0-7*i*100);
	glEnd();

	glBindTexture(GL_TEXTURE_2D, texture[10]);

	glBegin(GL_QUADS);
		glTexCoord2f(0.0f, 0.0f);	glVertex3f(2000.0, 0.0f, -700.0-7*i*100);
		glTexCoord2f(1.0f, 0.0f);	glVertex3f(2000.0, 160.0f, -700.0-7*i*100);
		glTexCoord2f(1.0f, 1.0f);	glVertex3f(2000.0, 160.0f, -300.0-7*i*100);
		glTexCoord2f(0.0f, 1.0f);	glVertex3f(2000.0, 0.0f, -300.0-7*i*100);
	glEnd();

	glBindTexture(GL_TEXTURE_2D, texture[11]);

	glBegin(GL_QUADS);
		glTexCoord2f(0.0f, 0.0f);	glVertex3f(2000.0, 0.0f, -300.0-7*i*100);
		glTexCoord2f(1.0f, 0.0f);	glVertex3f(2000.0, 160.0f, -300.0-7*i*100);
		glTexCoord2f(1.0f, 1.0f);	glVertex3f(2000.0, 160.0f, 100.0-7*i*100);
		glTexCoord2f(0.0f, 1.0f);	glVertex3f(2000.0, 0.0f, 100.0-7*i*100);
	glEnd();
}

//lAST WAll
glBindTexture(GL_TEXTURE_2D, texture[6]);

	glBegin(GL_QUADS);
		glTexCoord2f(0.0f, 0.0f);	glVertex3f(2000.0, 0.0f, 100.0);
		glTexCoord2f(1.0f, 0.0f);	glVertex3f(2000.0, 40.0f, 100.0);
		glTexCoord2f(1.0f, 1.0f);	glVertex3f(1600.0, 40.0f, 100.0);
		glTexCoord2f(0.0f, 1.0f);	glVertex3f(1600.0, 0.0f, 100.0);
	glEnd();

glBegin(GL_QUADS);
		glTexCoord2f(0.0f, 0.0f);	glVertex3f(1600.0, 0.0f, 100.0);
		glTexCoord2f(1.0f, 0.0f);	glVertex3f(1600.0, 40.0f, 100.0);
		glTexCoord2f(1.0f, 1.0f);	glVertex3f(1200.0, 40.0f, 100.0);
		glTexCoord2f(0.0f, 1.0f);	glVertex3f(1200.0, 0.0f, 100.0);
	glEnd();

glBegin(GL_QUADS);
		glTexCoord2f(0.0f, 0.0f);	glVertex3f(1200.0, 0.0f, 100.0);
		glTexCoord2f(1.0f, 0.0f);	glVertex3f(1200.0, 40.0f, 100.0);
		glTexCoord2f(1.0f, 1.0f);	glVertex3f(800.0, 40.0f, 100.0);
		glTexCoord2f(0.0f, 1.0f);	glVertex3f(800.0, 0.0f, 100.0);
	glEnd();

	glBegin(GL_QUADS);
		glTexCoord2f(0.0f, 0.0f);	glVertex3f(800.0, 0.0f, 100.0);
		glTexCoord2f(1.0f, 0.0f);	glVertex3f(800.0, 40.0f, 100.0);
		glTexCoord2f(1.0f, 1.0f);	glVertex3f(400.0, 40.0f, 100.0);
		glTexCoord2f(0.0f, 1.0f);	glVertex3f(400.0, 0.0f, 100.0);
	glEnd();

glBegin(GL_QUADS);
		glTexCoord2f(0.0f, 0.0f);	glVertex3f(400.0, 0.0f, 100.0);
		glTexCoord2f(1.0f, 0.0f);	glVertex3f(400.0, 40.0f, 100.0);
		glTexCoord2f(1.0f, 1.0f);	glVertex3f(100.0, 40.0f, 100.0);
		glTexCoord2f(0.0f, 1.0f);	glVertex3f(100.0, 0.0f, 100.0);
	glEnd();

/*
	glBegin(GL_QUADS);
		glTexCoord2f(0.0f, 0.0f);	glVertex3f(2000.0, 0.0f, -4800.0-7*19*100);
		glTexCoord2f(1.0f, 0.0f);	glVertex3f(2000.0, 40.0f, -4800.0-7*19*100);
		glTexCoord2f(1.0f, 1.0f);	glVertex3f(2000.0, 40.0f, -2800.0-7*19*100);
		glTexCoord2f(0.0f, 1.0f);	glVertex3f(2000.0, 0.0f, -2800.0-7*19*100);
	glEnd();
*/






	glBindTexture(GL_TEXTURE_2D, texture[0]);
	for(int i=0;i<20;i++)
{

//MAKING THE ROAD
glBindTexture(GL_TEXTURE_2D, texture[0]);
	glBegin(GL_QUADS);
		glTexCoord2f(0.0f, 0.0f);	glVertex3f(-100.0, 0.0f, -100.0-7*i*100);
		glTexCoord2f(1.0f, 0.0f);	glVertex3f(-100.0, 0.0f,  100.0-7*i*100);
		glTexCoord2f(1.0f, 1.0f);	glVertex3f( 100.0, 0.0f,  100.0-7*i*100);
		glTexCoord2f(0.0f, 1.0f);	glVertex3f( 100.0, 0.0f, -100.0-7*i*100);
	glEnd();

	
	glBegin(GL_QUADS);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -