Créé branche

This commit is contained in:
Louis-Charles Gaumond 2023-10-23 16:10:21 -04:00
parent 793da52871
commit f4d4f1eca0
4 changed files with 73 additions and 22 deletions

View File

@ -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) {

Binary file not shown.

After

Width:  |  Height:  |  Size: 195 KiB

View File

@ -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é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();
}
}
}

View File

@ -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__