void SceneWin::Render() { std::ostringstream enemyOSS; enemyOSS << "Enemies killed: " << SharedData::GetInstance()->enemycounter/2; string enemy = enemyOSS.str(); // Render VBO here glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); //Set view matrix using camera settings viewStack.LoadIdentity(); viewStack.LookAt( camera.position.x, camera.position.y, camera.position.z, camera.target.x, camera.target.y, camera.target.z, camera.up.x, camera.up.y, camera.up.z ); modelStack.LoadIdentity(); RenderQuadOnScreen(meshList[GEO_PATH], 6, 6.5, 6, 90, 1, 0, 0, -1); enemy.resize(20); RenderTextOnScreen(meshList[GEO_TEXT], enemy, Color(1, 1, 0), 3, 7.5, 10); }
void SceneMenu::Render() { std::ostringstream oss; oss << "Camera X: " << camera.position.x; string var = oss.str(); std::ostringstream oss1; oss1 << "Camera Z: " << camera.position.z; string var1 = oss1.str(); std::ostringstream ammoOSS; std::ostringstream goldOSS; std::ostringstream fpsOSS; fpsOSS << "FPS : " << deltaTime; string Fps = fpsOSS.str(); string ammo = ammoOSS.str(); string s_gold = goldOSS.str(); // Render VBO here glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); //Set view matrix using camera settings viewStack.LoadIdentity(); viewStack.LookAt( camera.position.x, camera.position.y, camera.position.z, camera.target.x, camera.target.y, camera.target.z, camera.up.x, camera.up.y, camera.up.z ); modelStack.LoadIdentity(); if (light[0].type == Light::LIGHT_DIRECTIONAL) { Vector3 lightDir(light[0].position.x, light[0].position.y, light[0].position.z); Vector3 lightDirection_cameraspace = viewStack.Top() * lightDir; glUniform3fv(m_parameters[U_LIGHT0_POSITION], 1, &lightDirection_cameraspace.x); } else if (light[0].type == Light::LIGHT_SPOT) { Position lightPosition_cameraspace = viewStack.Top() * light[0].position; glUniform3fv(m_parameters[U_LIGHT0_POSITION], 1, &lightPosition_cameraspace.x); Vector3 spotDirection_cameraspace = viewStack.Top() * light[0].spotDirection; glUniform3fv(m_parameters[U_LIGHT0_SPOTDIRECTION], 1, &spotDirection_cameraspace.x); } else { Position lightPosition_cameraspace = viewStack.Top() * light[0].position; glUniform3fv(m_parameters[U_LIGHT0_POSITION], 1, &lightPosition_cameraspace.x); } /*if (Input == "Game") { modelStack.PushMatrix(); Enemy_Rendering(); modelStack.PopMatrix(); modelStack.PushMatrix(); Map_Rendering(); modelStack.PopMatrix(); modelStack.PushMatrix(); Object_Rendering(); modelStack.PopMatrix(); modelStack.PushMatrix(); modelStack.Scale(30, 30, 30); modelStack.Translate(0, -1, 0); RenderMesh(meshList[GEO_MOONBALL], true); modelStack.PopMatrix(); }*/ ////Move skybox //modelStack.PushMatrix(); //modelStack.Translate(0 + camera.position.x, 0, -90 + camera.position.z + 50); //modelStack.Scale(3, 3, 3); //RenderSkybox(); //modelStack.PopMatrix(); modelStack.PushMatrix(); modelStack.Translate(0, 0, 0); modelStack.PushMatrix(); //scale, translate, rotate modelStack.Translate(0, -20, 0); modelStack.Rotate(180, 1, 0, 0); modelStack.Scale(1000, 1, 1000); RenderMesh(meshList[GEO_QUAD], true); modelStack.PopMatrix(); modelStack.PushMatrix(); modelStack.Translate(0, 1, 0); modelStack.Rotate(90, 1, 0, 0); RenderQuadOnScreen(meshList[GEO_STAR], 0.3, 20, menuIcon, rotateCoke, 0, 1, 0,2); RenderQuadOnScreen(meshList[GEO_PATH], 6, 6.7, menu_pos, 90, 1, 0, 0,0); /*if (menushop.shopInput == "Shop") { int j = 21; RenderQuadOnScreen(meshList[GEO_COKE], 1, 6, icon, rotateCoke,0,1,0,0); RenderTextOnScreen(meshList[GEO_TEXT], ">", Color(0, 1, 0), 1.7, 4, icon2); for (int arr = 0; arr < my_arr.size() - 3; ++arr) { --j; RenderTextOnScreen(meshList[GEO_TEXT], my_arr[arr], Color(1, 1, 1), 1.7, 5, j); } } if (menushop.shopInput == "Buy") { int j = 18; RenderQuadOnScreen(meshList[GEO_COKE], 1, 6, icon, rotateCoke, 0, 1, 0, 0); for (int arr = 6; arr < my_arr.size(); ++arr) { --j; RenderTextOnScreen(meshList[GEO_TEXT], my_arr[arr], Color(1, 1, 1), 1.7, 5, j); } if (b_gold) { RenderTextOnScreen(meshList[GEO_TEXT], "No more gold!", Color(1, 1, 1), 1.7, 10, 20); } }*/ if (Input == "Menu") { if (color == "Red1") { RenderTextOnScreen(meshList[GEO_TEXT], "Start", Color(1, 0, 0), 1.7, 5, 21); } else { RenderTextOnScreen(meshList[GEO_TEXT], "Start", Color(0, 1, 0), 1.7, 5, 21); } if (color == "Red2") { RenderTextOnScreen(meshList[GEO_TEXT], "Options", Color(1, 0, 0), 1.7, 5, 20); } else { RenderTextOnScreen(meshList[GEO_TEXT], "Options", Color(0, 1, 0), 1.7, 5, 20); } if (color == "Red3") { RenderTextOnScreen(meshList[GEO_TEXT], "Quit", Color(1, 0, 0), 1.7, 5, 19); } else { RenderTextOnScreen(meshList[GEO_TEXT], "Quit", Color(0, 1, 0), 1.7, 5, 19); } } if (Input == "Options") { if (color == "Red4") { RenderTextOnScreen(meshList[GEO_TEXT], "Settings", Color(1, 0, 0), 1.7, 5, 19); } else { RenderTextOnScreen(meshList[GEO_TEXT], "Settings", Color(0, 1, 0), 1.7, 5, 19); } if (color == "Red5") { RenderTextOnScreen(meshList[GEO_TEXT], "Quit", Color(1, 0, 0), 1.7, 5, 18); } else { RenderTextOnScreen(meshList[GEO_TEXT], "Quit", Color(0, 1, 0), 1.7, 5, 18); } } modelStack.PushMatrix(); //scale, translate, rotate modelStack.Translate(-10, 3, -60); RenderText(meshList[GEO_TEXT], "", Color(0, 1, 0)); modelStack.PushMatrix(); //scale, translate, rotate modelStack.Translate(25, 0, 0); RenderText(meshList[GEO_TEXT], "", Color(0, 1, 0)); modelStack.PopMatrix(); modelStack.PopMatrix(); modelStack.PopMatrix(); var.resize(16); var1.resize(16); Fps.resize(11); RenderTextOnScreen(meshList[GEO_TEXT], ammo, Color(1, 1, 0), 1.5, 1, 39); RenderTextOnScreen(meshList[GEO_TEXT], s_gold, Color(1, 1, 0), 1.5, 45, 39); RenderTextOnScreen(meshList[GEO_TEXT], var, Color(1, 1, 0), 1.5, 1, 3); RenderTextOnScreen(meshList[GEO_TEXT], var1, Color(1, 1, 0), 1.5, 1, 2); RenderTextOnScreen(meshList[GEO_TEXT], Fps, Color(1, 1, 0), 1.5, 1, 1); modelStack.PopMatrix(); }