void update() { glm::vec3 tempPlayerOne = glm::vec3(objectsDataList.getModelMatrix(1)[3][0], objectsDataList.getModelMatrix(1)[3][1], objectsDataList.getModelMatrix(1)[3][2]); //glm::vec3 tempPlayerTwo = glm::vec3(objectsDataList.getModelMatrix(2)[3][0], objectsDataList.getModelMatrix(2)[3][1], objectsDataList.getModelMatrix(2)[3][2]); //glm::vec3 puckLoc = glm::vec3(objectsDataList.getModelMatrix(3)[3][0], objectsDataList.getModelMatrix(3)[3][1], objectsDataList.getModelMatrix(3)[3][2]); //cout << "Makes it to update!" << endl; float dt = getDT(); int counter; // pass dt to all objects and let them update themselves based on their // current flags/status if(!pauseBool) { dynamicsWorld->setGravity(btVector3(gravityX, -10, gravityZ)); dynamicsWorld->stepSimulation(dt, 10.0f); for (counter = 0; counter < globalObjCount; counter++) { objectsDataList.updateObject(counter); } } switch(viewNum) { case 0: view = glm::lookAt( glm::vec3(camX, camY, camZ), //Eye Position glm::vec3(0, 0.0, 0.0), //Focus point glm::vec3(0.0, 0.0, 1.0)); //Positive Y is up break; case 1: view = glm::lookAt( glm::vec3(tempPlayerOne.x + camX + offsetX, 30.0 + offsetY, tempPlayerOne.z + camZ + offsetZ), //Eye Position glm::vec3(tempPlayerOne.x + offsetX, tempPlayerOne.y + offsetY, tempPlayerOne.z + offsetZ), //Focus point glm::vec3(0.0, 0.0, 1.0)); //Positive Y is up break; case 2: //view = glm::lookAt( glm::vec3(tempPlayerTwo.x, 40.0, tempPlayerTwo.z), //Eye Position //glm::vec3(tempPlayerTwo.x, tempPlayerTwo.y, tempPlayerTwo.z), //Focus point //glm::vec3(0.0, 0.0, 1.0)); //Positive Y is up break; } //checkGoal(); // Update the state of the scene glutPostRedisplay();//call the display callback }
//--Implementations void render() { int counter; //clear the screen glClearColor(1.0, 1.0, 1.0, 1.0); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); //enable the shader program glUseProgram(program); glUniform1f(loc_lightType, lightTypeVal); glUniform1f(loc_lightType2, lightTypeVal2); for(counter = 0; counter < globalObjCount; counter++) { //matrix MVP for planet mvp = projection * view * objectsDataList.getModelMatrix(counter); // load each objects mvp renderObject( mvp, counter ); } score(); //Render Text string playerOneStr = "Player One Score:" + numToStr(scoreOne); string elapsedTime = "Elapsed Time:" + numToStr(elapsedDT()); glColor3d(0.0, 0.0, 0.0); glMatrixMode(GL_PROJECTION); //glPushMatrix(); glLoadIdentity(); gluOrtho2D(0, w, 0, h); glScalef(1, -1, 1); glTranslatef(0, -h, 0); //glMatrixMode(GL_MODELVIEW); //glLoadIdentity(); renderBitmapString(30,40,(void *)GLUT_BITMAP_HELVETICA_18,playerOneStr); glColor3d(0.0, 0.0, 0.0); renderBitmapString(30,60,(void *)GLUT_BITMAP_HELVETICA_18,elapsedTime); glPushMatrix(); //glMatrixMode(GL_PROJECTION); glPopMatrix(); glMatrixMode(GL_MODELVIEW); //clean up glDisableVertexAttribArray(loc_position); glDisableVertexAttribArray(loc_uv); glDisableVertexAttribArray(loc_normal); //enable depth testing glEnable(GL_DEPTH_TEST); glDepthFunc(GL_LESS); //swap the buffers glutSwapBuffers(); }
//--Implementations void render() { //cout << "Makes it to Render!" << endl; int counter; //clear the screen glClearColor(0.2, 0.2, 0.2, 1.0); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); //enable the shader program glUseProgram(program); for(counter = 0; counter < globalObjCount; counter++) { //matrix MVP for planet mvp = projection * view * objectsDataList.getModelMatrix(counter); // load each objects mvp renderObject( mvp, counter ); } //swap the buffers glutSwapBuffers(); }