Créé branche
This commit is contained in:
		| @@ -684,11 +684,11 @@ void Engine::Render(float elapsedTime) { | ||||
| 				if (leftright) | ||||
| 					vstep = Vector3f(m_player.GetPosition().x + m_player.GetDirection().z, m_player.GetPosition().y - 1.7f, m_player.GetPosition().z + m_player.GetDirection().x); | ||||
| 				else vstep = Vector3f(m_player.GetPosition().x - m_player.GetDirection().z, m_player.GetPosition().y - 1.7f, m_player.GetPosition().z - m_player.GetDirection().x); | ||||
| 				m_audio.Create3DAudioObj(step, AUDIO_PATH "step.wav", vstep, m_player.GetVelocity(), .8f); | ||||
| 				m_audio.Create3DAudioObj(step, AUDIO_PATH "step.wav", vstep, m_player.GetVelocity(), false,.8f); | ||||
| 				leftright = !leftright; | ||||
| 				break; | ||||
| 			case Player::Sound::FALL: | ||||
| 				m_audio.Create3DAudioObj(step, AUDIO_PATH "hit.wav", m_player.GetPosition(), m_player.GetVelocity(), 1.f); | ||||
| 				m_audio.Create3DAudioObj(step, AUDIO_PATH "hit.wav", m_player.GetPosition(), m_player.GetVelocity(), false,1.f); | ||||
| 				break; | ||||
| 			default: break; | ||||
| 			} | ||||
| @@ -755,7 +755,7 @@ void Engine::Render(float elapsedTime) { | ||||
|  | ||||
| 		static bool fell = false; | ||||
| 		if (m_player.GetPosition().y < 1.7f && !fell) { | ||||
| 			m_audio.Create3DAudioObj(m_scream, AUDIO_PATH "scream.wav", m_player.GetPOV(), m_player.GetVelocity(), 1.f); | ||||
| 			m_audio.Create3DAudioObj(m_scream, AUDIO_PATH "scream.wav", m_player.GetPOV(), m_player.GetVelocity(), false,1.f); | ||||
| 			fell = true; | ||||
| 		} | ||||
| 		else if (m_player.GetPosition().y < -20.f) { | ||||
|   | ||||
							
								
								
									
										
											BIN
										
									
								
								SQCSim2021/media/textures/sc2.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								SQCSim2021/media/textures/sc2.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 195 KiB | 
| @@ -9,11 +9,43 @@ OpenglContext::~OpenglContext() | ||||
| { | ||||
| } | ||||
|  | ||||
| void OpenglContext::RenderSplashScreen() | ||||
| { | ||||
|     m_textureSplash.Load(TEXTURE_PATH "sc2.png", true); | ||||
|  | ||||
|     if (!m_textureSplash.IsValid()) { | ||||
|         std::cerr << "Unable to load texture sc2.png" << std::endl; | ||||
|     } | ||||
|  | ||||
|     m_textureSplash.Bind(); | ||||
|  | ||||
|     glMatrixMode(GL_PROJECTION); | ||||
|  | ||||
|  | ||||
|  | ||||
|     glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); // Utilisez une fonction de m<>lange appropri<72>e | ||||
|  | ||||
|     glBegin(GL_QUADS); | ||||
|     glTexCoord2f(0, 0); | ||||
|     glVertex2i(0, 0); | ||||
|     glTexCoord2f(1, 0); | ||||
|     glVertex2i(BASE_WIDTH, 0); | ||||
|     glTexCoord2f(1, 1); | ||||
|     glVertex2i(BASE_WIDTH, BASE_HEIGHT); | ||||
|     glTexCoord2f(0, 1); | ||||
|     glVertex2i(0, BASE_HEIGHT); | ||||
|     glEnd(); | ||||
| } | ||||
|  | ||||
|  | ||||
| bool OpenglContext::Start(const std::string& title, int width, int height, bool fullscreen) | ||||
| { | ||||
|     m_title = title; | ||||
|     m_fullscreen = fullscreen; | ||||
|     InitWindow(width, height); | ||||
|     bool showSplashScreen = true; | ||||
|     sf::Clock splashClock; | ||||
|  | ||||
|  | ||||
|     Init(); | ||||
|     LoadResource(); | ||||
| @@ -22,13 +54,29 @@ bool OpenglContext::Start(const std::string& title, int width, int height, bool | ||||
|  | ||||
|     while (m_app.isOpen()) | ||||
|     { | ||||
|         clock.restart(); | ||||
|  | ||||
|         sf::Event Event; | ||||
|         while (m_app.pollEvent(Event)) | ||||
|         if (showSplashScreen) | ||||
|         { | ||||
|             switch(Event.type) | ||||
|             m_app.setActive(); | ||||
|             Render(m_lastFrameTime); | ||||
|             m_app.display(); | ||||
|             RenderSplashScreen(); | ||||
|  | ||||
|             if (splashClock.getElapsedTime().asSeconds() >= 3) | ||||
|             { | ||||
|                 showSplashScreen = false; | ||||
|             } | ||||
|         } | ||||
|         else | ||||
|         { | ||||
|  | ||||
|  | ||||
|             clock.restart(); | ||||
|  | ||||
|             sf::Event Event; | ||||
|             while (m_app.pollEvent(Event)) | ||||
|             { | ||||
|                 switch (Event.type) | ||||
|                 { | ||||
|                 case sf::Event::Closed: | ||||
|                     m_app.close(); | ||||
|                     break; | ||||
| @@ -51,28 +99,29 @@ bool OpenglContext::Start(const std::string& title, int width, int height, bool | ||||
|                     MouseReleaseEvent(ConvertMouseButton(Event.mouseButton.button), Event.mouseButton.x, Event.mouseButton.y); | ||||
|                     break; | ||||
|                 case sf::Event::MouseWheelMoved: | ||||
|                     if(Event.mouseWheel.delta > 0) | ||||
|                     if (Event.mouseWheel.delta > 0) | ||||
|                         MousePressEvent(MOUSE_BUTTON_WHEEL_UP, Event.mouseButton.x, Event.mouseButton.y); | ||||
|                     else | ||||
|                         MousePressEvent(MOUSE_BUTTON_WHEEL_DOWN, Event.mouseButton.x, Event.mouseButton.y); | ||||
|                     break; | ||||
|                 default: break; | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         m_app.setActive(); | ||||
|         Render(m_lastFrameTime); | ||||
|         m_app.display(); | ||||
|  | ||||
|         m_lastFrameTime = clock.getElapsedTime().asSeconds(); | ||||
|  | ||||
|         // Handle ourself frame rate limit, sf::Window::setFramerateLimit doesn't seems to work | ||||
|         float waitTime = (1.f / m_maxFps) - m_lastFrameTime; | ||||
|         if(waitTime > 0) | ||||
|         { | ||||
|             sf::sleep(sf::seconds(waitTime)); | ||||
|             m_app.setActive(); | ||||
|             Render(m_lastFrameTime); | ||||
|             m_app.display(); | ||||
|  | ||||
|             m_lastFrameTime = clock.getElapsedTime().asSeconds(); | ||||
|  | ||||
|             // Handle ourself frame rate limit, sf::Window::setFramerateLimit doesn't seems to work | ||||
|             float waitTime = (1.f / m_maxFps) - m_lastFrameTime; | ||||
|             if (waitTime > 0) | ||||
|             { | ||||
|                 sf::sleep(sf::seconds(waitTime)); | ||||
|  | ||||
|                 m_lastFrameTime = clock.getElapsedTime().asSeconds(); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -4,6 +4,7 @@ | ||||
| #include <string> | ||||
| #include <SFML/Window.hpp> | ||||
| #include "define.h" | ||||
| #include "texture.h" | ||||
|  | ||||
| // Documentation de SFML: http://www.sfml-dev.org/documentation/index-fr.php | ||||
| class OpenglContext | ||||
| @@ -30,7 +31,7 @@ public: | ||||
|     virtual void MouseMoveEvent(int x, int y) = 0; | ||||
|     virtual void MousePressEvent(const MOUSE_BUTTON &button, int x, int y) = 0; | ||||
|     virtual void MouseReleaseEvent(const MOUSE_BUTTON &button, int x, int y) = 0; | ||||
|  | ||||
|     virtual void RenderSplashScreen(); | ||||
|  | ||||
|     bool Start(const std::string& title, int width, int height, bool fullscreen); | ||||
|     bool Stop(); | ||||
| @@ -62,6 +63,7 @@ private: | ||||
|     bool		m_fullscreen; | ||||
|     std::string m_title; | ||||
| 	float m_lastFrameTime; | ||||
|     Texture m_textureSplash; | ||||
| }; | ||||
|  | ||||
| #endif // OPENGLCONTEXT_H__ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user