Beispiel #1
0
void keyboard(unsigned char key, int x, int y){
	switch(key){ 
		case 27:exit(0); break;
		case 'a':rotation_.y -= ROTATION_FACTOR; break;
		case 'd': rotation_.y += ROTATION_FACTOR; break;
		case 'w': rotation_.x += ROTATION_FACTOR; break;
		case 's': rotation_.x -= ROTATION_FACTOR; break;
		case 13: rotation_ = vec3Make(0.0, 0.0, 0.0); break;
	}
	glutPostRedisplay();
}
Beispiel #2
0
int main()
{
	//////////////////////////////////////////////////////////////////
	////Loads core files in for game processes
	coreLoad(Window);
	coreLoad(Time);
	coreLoad(Input);
	coreLoad(Camera);
	coreLoad(Factory);
	coreLoad(Asset);
	//////////////////////////////////////////////////////////////////

	//////////////////////////////////////////////////////////////////
	////Loads system files in
	systemLoad(TransformUpdate);
	systemLoad(Rendering);
	systemLoad(textRenderSys);
	systemLoad(trafficSys);
	systemLoad(collisionPrep);
	systemLoad(CollisionDetection);
	systemLoad(StaticCollision);
	systemLoad(collisionResponse);
	systemLoad(RigidbodyDynamics);
	systemLoad(TankDynamics);
	systemLoad(LifeTimeDynamics);
	systemLoad(collisionRender);
	//////////////////////////////////////////////////////////////////
	
	initCore();//Main Game Loop
	//////////////////////////////////////////////////////////////////
	//////////////////////////////////////////////////////////////////
	////////Files Loaded in for textures and shaders files
	///Shaders
	core(Asset).loadShader("Flat", "./shaders/simpleShader.vert", "./shaders/simpleShader.frag");
	core(Asset).loadShader("Texture", "./shaders/simpleShader.vert", "./shaders/textureShader.frag");
	core(Asset).loadShader("FontShader", "./shaders/simpleShader.vert", "./shaders/fontShader.frag");
	///Texture Files
	//Track
	core(Asset).loadTexture("Track", "./texture/Track.png");
	//Car Images
	core(Asset).loadTexture("Car1texture", "./texture/car.png");
	core(Asset).loadTexture("Car2texture", "./texture/car2.png");
	core(Asset).loadTexture("Car1Turret", "./texture/carTank.png");
	core(Asset).loadTexture("Car2Turret", "./texture/car2Tank.png");
	//Animations
	core(Asset).loadTexture("Walking", "./texture/WalkingAnimation.png", 4, 6);
	core(Asset).loadTexture("Raka", "./texture/Raka.png", 2, 5);
	core(Asset).loadTexture("Garren", "./texture/GARREN.bmp", 10, 12);
	core(Asset).loadTexture("Draven", "./texture/SPINNERS.bmp", 4, 4);
	core(Asset).loadTexture("Milk", "./texture/CANTMILK.bmp", 4, 6);
	core(Asset).loadTexture("Font", "./texture/font2.png", 8, 16);
	core(Asset).loadTexture("Light", "./texture/trafficLight.png", 1, 3);
	core(Asset).loadTexture("Flag", "./texture/FLAG.bmp", 2, 2);

	//////////////////////////////////////////////////////////////////
	//////////////////////////////////////////////////////////////////
	//////Vertex for game objects
	///Font
	Vertex font_vertexQ[4] = {  { {-.5, .5, 0, 1 }, { 0, 1, 1, 0 }, { 0, 0 } },
								{ { .5, .5, 0, 1 }, { 0, 1, 1, 0 }, { 1, 0 } },
								{ { .5,-.5, 0, 1 }, { 0, 1, 1, 0 }, { 1, 1 } },
								{ {-.5,-.5, 0, 1 }, { 0, 1, 1, 0 }, { 0, 1 } } };

	///Walking
	Vertex Animation_vertQ[4] = { { { core(Window).width() / 2, core(Window).height() / 2, 0, 1 }, { 0, 1, 1, 0 }, { 0, 0 } },
							      { {                        0, core(Window).height() / 2, 0, 1 }, { 0, 1, 1, 0 }, { 1, 0 } },
								  { {                        0,							0, 0, 1 }, { 0, 1, 1, 0 }, { 1, 1 } },
								  { { core(Window).width() / 2,							0, 0, 1 }, { 0, 1, 1, 0 }, { 0, 1 } } };

	///Track
	Vertex Track_vertQ[4] = { { { core(Window).width(), core(Window).height(), 0, 1 }, { 0, 1, 1, 0 }, { 0, 0 } },
							  { {					 0, core(Window).height(), 0, 1 }, { 0, 1, 1, 0 }, { 1, 0 } },
							  { {					 0,						0, 0, 1 }, { 0, 1, 1, 0 }, { 1, 1 } },
							  { { core(Window).width(),					    0, 0, 1 }, { 0, 1, 1, 0 }, { 0, 1 } } };

	///Car
	Vertex Car_vertexQ[4] = { { { -15, 30, 0, 1 }, { 0, 1, 1, 0 }, { 0, 0 } },
	{ { 15, 30, 0, 1 }, { 0, 1, 1, 0 }, { 1, 0 } },
							   { { 15, -30, 0, 1 }, { 0, 1, 1, 0 }, { 1, 1 } },
							   { {-15,-30, 0, 1 }, { 0, 1, 1, 0 }, { 0, 1 } } };

	///Turret
	Vertex Turret[4] = { { {-10, 10, 0, 1 }, { 1, 0, 1, 0 }, { 0, 0 } },
						 { { 10, 10, 0, 1 }, { 0, 1, 0, 1 }, { 1, 0 } },
						 { { 10,-10, 0, 1 }, { 1, 0, 1, 0 }, { 1, 1 } },
						 { {-10,-10, 0, 1 }, { 0, 1, 0, 1 }, { 0, 1 } } };

	///Bullet
	Vertex Bullet[4] = { { {-5, 5, 0, 1 }, { 1, 0, 1, 0 }, { 0, 0 } },
						 { { 5, 5, 0, 1 }, { 0, 1, 0, 1 }, { 1, 0 } },
						 { { 5,-5, 0, 1 }, { 1, 0, 1, 0 }, { 1, 1 } },
						 { {-5,-5, 0, 1 }, { 0, 1, 0, 1 }, { 0, 1 } } };

	///Light
	Vertex Light[4] = { { { -30, 70, 0, 1 }, { 1, 0, 1, 0 }, { 0, 0 } },
						{ { 30, 70, 0, 1 }, { 0, 1, 0, 1 }, { 1, 0 } },
						{ { 30, -70, 0, 1 }, { 1, 0, 1, 0 }, { 1, 1 } },
						{ { -30, -70, 0, 1 }, { 0, 1, 0, 1 }, { 0, 1 } } };

	///Flag
	Vertex Flag[4] = {  { {-290, 170, 0, 1 }, { 1, 0, 1, 0 }, { 0, 0 } },
						{ { 290, 170, 0, 1 }, { 0, 1, 0, 1 }, { 1, 0 } },
						{ { 290,-170, 0, 1 }, { 1, 0, 1, 0 }, { 1, 1 } },
						{ {-290,-170, 0, 1 }, { 0, 1, 0, 1 }, { 0, 1 } } };
	//////////////////////////////////////////////////////////////////
	//////////////////////////////////////////////////////////////////
	///////Triangles for objects
	///font
	Triangle quad[2] = { { 0, 1, 2 }, { 0, 2, 3 } };

	//////////////////////////////////////////////////////////////////
	//////////////////////////////////////////////////////////////////
	
	//////Meshes
	core(Asset).loadMesh("Bullet", Bullet, 4, quad, 2);
	core(Asset).loadMesh("Turret", Turret, 4, quad, 2);
	core(Asset).loadMesh("Car", Car_vertexQ, 4, quad, 2);
	core(Asset).loadMesh("Anime", Animation_vertQ, 4, quad, 2);
	core(Asset).loadMesh("Quad", font_vertexQ, 4, quad, 2);
	core(Asset).loadMesh("TrackMesh", Track_vertQ, 4, quad, 2);
	core(Asset).loadMesh("lightMesh", Light, 4, quad, 2);
	core(Asset).loadMesh("flagMesh", Flag, 4, quad, 2);
	//////////////////////////////////////////////////////////////////
	//////////////////////////////////////////////////////////////////

	//////Factory Entities Loading in
	////BackGround
	core(Factory).makeBG(0, 0);

	////Cars
	auto p1 = core(Factory).MakeTank(790, 620, 1); //Car1
	auto p2 = core(Factory).MakeTank(790, 560, 2, 'I', 'K', 'J', 'L', 'U', 'O', 'N'); //Car2
	////Car Names
	core(Factory).makeText(0, 0, "P1",16,24,p1->transform); //Car1 Name
	core(Factory).makeText(0, 0, "P2", 16, 24, p2->transform); //Car2 Name

	////Game borders
	core(Factory).MakeBorder(70, core(Window).height() - 65, vec3Make(1, 0, 0));
	core(Factory).MakeBorder(70, core(Window).height() - 65, vec3Make(0, -1, 0));
	core(Factory).MakeBorder(core(Window).width() - 45, 65, vec3Make(-1, 0, 0));
	core(Factory).MakeBorder(core(Window).width() - 45, 65, vec3Make(0, 1, 0));

	////track hit markers
	//core(Factory).makeLine(725, 590);
	core(Factory).makeCenter(core(Window).width()/2, core(Window).height() / 2);

	////Hud info
	core(Factory).makeLight(core(Window).width() / 2, core(Window).height() / 2,
		core(Factory).makeGate(760, 590, vec3Make(1, 0, 0)), core(Factory).makeGate(820, 590, vec3Make(-1, 0, 0)));
	//////////////////////////////////////////////////////////////////
	//////////////////////////////////////////////////////////////////

	runGame(); //end of game loop
}
Beispiel #3
0
void init(){	
	int i = 0;
	VertexData vertex[VERTEX_COUNT];
	FaceData face[kFaceTotal];
	
	vertex[i++] = VertexDataMake(vec3Make(-EDGE, -EDGE, -EDGE),	vec3Make(0.0, 0.0, 0.0));
	vertex[i++] = VertexDataMake(vec3Make(EDGE, -EDGE, -EDGE),	vec3Make(1.0, 0.0, 0.0));
	vertex[i++] = VertexDataMake(vec3Make(	EDGE, EDGE, -EDGE),	vec3Make(1.0, 1.0, 0.0));
	vertex[i++] = VertexDataMake(vec3Make(	-EDGE, EDGE, -EDGE),vec3Make(0.0, 1.0, 0.0));
	vertex[i++] = VertexDataMake(vec3Make(	-EDGE, -EDGE, EDGE),vec3Make(0.0, 1.0, 1.0));
	vertex[i++] = VertexDataMake(vec3Make(	EDGE, -EDGE, EDGE),	vec3Make(0.0, 0.0, 1.0));
	vertex[i++] = VertexDataMake(vec3Make(	EDGE, EDGE, EDGE),	vec3Make(1.0, 0.0, 1.0));
	vertex[i++] = VertexDataMake(vec3Make(	-EDGE, EDGE, EDGE),	vec3Make(1.0, 1.0, 1.0));
	

	face[kFaceLeft] = FaceDataMake(0, 4, 7, 3);
	face[kFaceRight] = FaceDataMake(1, 2, 6, 5);
	face[kFaceBottom] = FaceDataMake(0, 1, 5, 4);
	face[kFaceTop] = FaceDataMake(3, 7, 6, 2);
	face[kFaceFront] = FaceDataMake(4, 5, 6, 7);
	face[kFaceBack] = FaceDataMake(0, 3, 2, 1);
	
	rotation_ = vec3Make(30.0, 30.0, 0.0);
	
	glClearColor(0.5, 0.5, 0.5, 0.5);
	glClearDepth(1.0);
	glEnable(GL_DEPTH_TEST);
	glShadeModel(GL_SMOOTH);
	//glCullFace(GL_BACK);
	//glEnable(GL_CULL_FACE);
	
	glGenBuffers(1, &vertexBuffer_);
	glBindBuffer(GL_ARRAY_BUFFER, vertexBuffer_);
	glBufferData(GL_ARRAY_BUFFER, VERTEX_COUNT*sizeof(vertex[0]), vertex, GL_STATIC_DRAW);
	
	glGenBuffers(1, &indexBuffer_);
	glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, indexBuffer_);
	glBufferData(GL_ELEMENT_ARRAY_BUFFER, kFaceTotal*sizeof(face[0]), face, GL_STATIC_DRAW);
}
Beispiel #4
0
vec3 vec3TruncateVec4(const vec4 vec)
{
    return vec3Make(vec.x, vec.y, vec.z);
}