@@ -229,6 +229,10 @@ void Engine::Init() {
abort ( ) ;
}
uint64_t seed = SEED ;
std : : string playname = " " ;
char ch ;
glDisable ( GL_FRAMEBUFFER_SRGB ) ;
glEnable ( GL_DEPTH_TEST ) ;
glEnable ( GL_STENCIL_TEST ) ;
@@ -258,31 +262,37 @@ void Engine::Init() {
// Array pour les balles.
for ( int x = 0 ; x < MAX_BULLETS ; + + x ) {
m_bullets [ x ] = nullptr ;
m_whoosh [ x ] = nullptr ; // = m_audio.m_engine.m_audio.m_engine->addSoundSourceFromFile(AUDIO_PATH "noise.ogg", irrklang::ESM_AUTO_DETECT, false);
m_whoosh [ x ] = nullptr ;
}
uint64_t seed = SEED ;
std : : string playname = " La Chienne <20> Jacques " ;
if ( NETWORK_TEST ) { // Test connexion r<> seau.
# ifdef NETWORK_TEST
std : : cout < < " Jouer en ligne? [o/N] " ;
std : : cin > > ch ;
std : : cout < < std : : endl ;
if ( ch = = ' o ' | | ch = = ' O ' ) {
std : : cout < < " Veuillez entrer un nom de joueur: " ;
std : : getline ( std : : cin , playname ) ;
std : : cout < < std : : endl ;
if ( ! m_conn . Init ( ) ) {
if ( ! m_conn . Connect ( SRV_ADDR , playname ) ) {
// setup jeu en r<EFBFBD> seau.
std : : cout < < " ID re<EFBFBD> u du serveur: " < < std : : to_string ( m_conn . getId ( ) ) < < " ! " < < std : : endl ;
std : : cout < < " Seed re<EFBFBD> u du serveur: " < < std : : to_string ( m_conn . getSeed ( ) ) < < " ! " < < std : : endl ;
// setup jeu en re seau.
std : : cout < < " ID rec u du serveur: " < < std : : to_string ( m_conn . getId ( ) ) < < " ! " < < std : : endl ;
std : : cout < < " Seed rec u du serveur: " < < std : : to_string ( m_conn . getSeed ( ) ) < < " ! " < < std : : endl ;
seed = m_conn . getSeed ( ) ;
}
else std : : cout < < " Erreur de connexion. " < < std : : endl ;
}
else std : : cout < < " Erreur de cr<EFBFBD> ation de socket. " < < std : : endl ;
else std : : cout < < " Erreur de cre ation de socket. " < < std : : endl ;
}
# endif
m_world . SetSeed ( seed ) ;
// Init Chunks
m_world . GetChunks ( ) . Reset ( nullptr ) ;
// Gestion de souris.
CenterMouse ( ) ;
HideCursor ( ) ;
@@ -461,7 +471,7 @@ void Engine::DisplayHud(int timer) {
glVertex2f ( fPosX , fPosY ) ; // Haut-Gauche
glEnd ( ) ;
//TODO: Associer avec m<EFBFBD> chanique de vie du joueur
//TODO: Associer avec me chanique de vie du joueur
// Barre HP
glColor3f ( 0.0f * facteurOmbrage , 1.0f * facteurOmbrage , 0.0f * facteurOmbrage ) ;
@@ -472,7 +482,7 @@ void Engine::DisplayHud(int timer) {
glVertex2f ( fPosX , fPosY ) ; // Haut-Gauche
glEnd ( ) ;
// Barre <EFBFBD> quip
// Barre e quip
glEnable ( GL_BLEND ) ;
glBlendFunc ( GL_SRC_ALPHA , GL_ONE_MINUS_SRC_ALPHA ) ;
glColor3f ( 1.0f * facteurOmbrage , 1.0f * facteurOmbrage , 1.0f * facteurOmbrage ) ;
@@ -633,6 +643,7 @@ float Engine::GetScale() const {
}
int Engine : : GetFps ( float elapsedTime ) const { return 1 / elapsedTime ; }
int Engine : : GetCountdown ( float elapsedTime ) {
if ( m_resetcountdown )
{
@@ -684,16 +695,16 @@ 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 ( ) , .8f , false );
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 ( ) , 1.f , false );
break ;
default : break ;
}
m_audio . Update3DAudio ( m_player . GetPOV ( ) , m_player . GetDirection ( ) , m_player . GetVelocity ( ) ) ; // Ajustement du positionnement 3D avec les coordonn<EFBFBD> es du joueur et
// son vecteur de v<EFBFBD> locit<EFBFBD> (pour l'effet Doppler)
m_audio . Update3DAudio ( m_player . GetPOV ( ) , m_player . GetDirection ( ) , m_player . GetVelocity ( ) ) ; // Ajustement du positionnement 3D avec les coordonne es du joueur et
// son vecteur de ve locite (pour l'effet Doppler)
pollTime = 0 ;
}
@@ -755,7 +766,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 ( ) , 1.f , false );
fell = true ;
}
else if ( m_player . GetPosition ( ) . y < - 20.f ) {
@@ -813,7 +824,7 @@ void Engine::KeyPressEvent(unsigned char key) {
break ;
case 10 : // K - Debugging DisplayNotification()
m_keyK = true ;
m_messageNotification = " notifications systeme peuvent <EFBFBD> tre affich<EFBFBD> " ;
m_messageNotification = " notifications systeme peuvent e tre affichees " ;
break ;
case 11 : // L - Debugging DisplayNotification()
m_keyL = true ;