void draw() { // clear the color and depth in the frame buffer glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // use the loaded shader program // Don't change unless you know what you are doing glUseProgram (programID); // Eye - Location of camera. Don't change unless you are sure!! // glm::vec3 eye ( 5*cos(camera_rotation_angle*M_PI/180.0f), 0, 5*sin(camera_rotation_angle*M_PI/180.0f) ); // Target - Where is the camera looking at. Don't change unless you are sure!! // glm::vec3 target (0, 0, 0); // Up - Up vector defines tilt of camera. Don't change unless you are sure!! // glm::vec3 up (0, 1, 0); // Compute Camera matrix (view) // Matrices.view = glm::lookAt( eye, target, up ); // Rotating Camera for 3D // Don't change unless you are sure!! Matrices.view = glm::lookAt(glm::vec3(0, 0, 3), glm::vec3(0, 0, 0), glm::vec3(0, 1, 0)); // Fixed camera for 2D (ortho) in XY plane // Compute ViewProject matrix as view/camera might not be changed for this frame (basic scenario) // Don't change unless you are sure!! glm::mat4 VP = Matrices.projection * Matrices.view; // Send our transformation to the currently bound shader, in the "MVP" uniform // For each model you render, since the MVP will be different (at least the M part) // Don't change unless you are sure!! glm::mat4 MVP; // MVP = Projection * View * Model // Scene render trap1.draw(VP); ball1.draw(VP); flr.draw(VP); trampoline1.draw(VP); trampoline2.draw(VP); if(level==1) { trampoline3.draw(VP); trampoline4.draw(VP); trap2.draw(VP); } for(int i=0;i<10;i++) if(!enemy[level][i].hitflag) enemy[level][i].draw(VP); }