mirror of
https://github.com/BreizhHardware/bloubloulespoissons.git
synced 2026-01-18 16:47:31 +01:00
Add first music
This commit is contained in:
2
env.cpp
2
env.cpp
@@ -24,6 +24,8 @@ std::atomic<bool> messageThreadRunning(false);
|
||||
std::atomic<bool> isHost(false);
|
||||
EventHandler eventHandler;
|
||||
std::atomic<bool> soundMuted(false);
|
||||
Mix_Music* backgroundMusic = nullptr;
|
||||
Mix_Music* menuMusic = nullptr;
|
||||
|
||||
|
||||
void resetAll(){
|
||||
|
||||
3
env.h
3
env.h
@@ -5,6 +5,7 @@
|
||||
#include <SDL2/SDL.h>
|
||||
#include <SDL2/SDL_image.h>
|
||||
#include <SDL2/SDL_ttf.h>
|
||||
#include <SDL2/SDL_mixer.h>
|
||||
#include <iostream>
|
||||
#include <vector>
|
||||
#include <dirent.h>
|
||||
@@ -39,6 +40,8 @@ extern std::vector<Player> players_server;
|
||||
extern std::atomic<bool> isHost;
|
||||
extern EventHandler eventHandler;
|
||||
extern std::atomic<bool> soundMuted;
|
||||
extern Mix_Music* backgroundMusic;
|
||||
extern Mix_Music* menuMusic;
|
||||
|
||||
bool initEnvironment(SDL_Renderer* renderer);
|
||||
std::vector<SDL_Texture*> initTexture(SDL_Renderer* renderer);
|
||||
|
||||
65
main.cpp
65
main.cpp
@@ -187,6 +187,12 @@ bool initSDL() {
|
||||
return false;
|
||||
}
|
||||
|
||||
menuMusic = Mix_LoadMUS("../sounds/Menu.wav");
|
||||
if (menuMusic == nullptr) {
|
||||
std::cerr << "Erreur de chargement de la musique du menu: " << Mix_GetError() << std::endl;
|
||||
return false;
|
||||
}
|
||||
|
||||
window = SDL_CreateWindow("BloubBloub les poissons",
|
||||
SDL_WINDOWPOS_CENTERED,
|
||||
SDL_WINDOWPOS_CENTERED,
|
||||
@@ -423,6 +429,17 @@ int main(int argc, char* args[]) {
|
||||
|
||||
//menu.addButton((windowWidth/2) - 100, (windowHeight/2 + 25) + 50, 200, 50, "Multi", 1024);
|
||||
|
||||
menuMusic = Mix_LoadMUS("../sounds/Menu.wav");
|
||||
if (menuMusic == nullptr) {
|
||||
std::cerr << "Erreur de chargement de la musique du menu: " << Mix_GetError() << std::endl;
|
||||
return false;
|
||||
}
|
||||
Mix_VolumeMusic(MIX_MAX_VOLUME / 4);
|
||||
if (Mix_PlayMusic(menuMusic, -1) == -1) {
|
||||
std::cerr << "Erreur de lecture de la musique du menu: " << Mix_GetError() << std::endl;
|
||||
return false;
|
||||
}
|
||||
|
||||
while (running) {
|
||||
|
||||
handleQuit();
|
||||
@@ -431,6 +448,11 @@ int main(int argc, char* args[]) {
|
||||
menu.draw(renderer);
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (Mix_PlayingMusic()) {
|
||||
Mix_HaltMusic();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
std::cout << "Check Threads 1" << std::endl;
|
||||
@@ -472,6 +494,18 @@ int pas_la_fontion_main_enfin_ce_nest_pas_la_fontion_principale_du_programme_mai
|
||||
|
||||
game_running = true;
|
||||
|
||||
backgroundMusic = Mix_LoadMUS("../sounds/Playing.wav");
|
||||
if (backgroundMusic == nullptr) {
|
||||
std::cerr << "Erreur de chargement de la musique: " << Mix_GetError() << std::endl;
|
||||
return false;
|
||||
}
|
||||
Mix_VolumeMusic(MIX_MAX_VOLUME / 4);
|
||||
if (Mix_PlayMusic(backgroundMusic, -1) == -1) {
|
||||
std::cerr << "Erreur de lecture de la musique: " << Mix_GetError() << std::endl;
|
||||
return false;
|
||||
}
|
||||
Mix_PlayMusic(backgroundMusic, -1);
|
||||
|
||||
std::vector<Kelp> kelps;
|
||||
std::vector<Rock> rocks;
|
||||
std::vector<Coral> corals;
|
||||
@@ -554,6 +588,19 @@ int pas_la_fontion_main_enfin_ce_nest_pas_la_fontion_principale_du_programme_mai
|
||||
// return -1;
|
||||
// }
|
||||
game_running = true;
|
||||
|
||||
backgroundMusic = Mix_LoadMUS("../sounds/Playing.wav");
|
||||
if (backgroundMusic == nullptr) {
|
||||
std::cerr << "Erreur de chargement de la musique: " << Mix_GetError() << std::endl;
|
||||
return false;
|
||||
}
|
||||
Mix_VolumeMusic(MIX_MAX_VOLUME / 4);
|
||||
if (Mix_PlayMusic(backgroundMusic, -1) == -1) {
|
||||
std::cerr << "Erreur de lecture de la musique: " << Mix_GetError() << std::endl;
|
||||
return false;
|
||||
}
|
||||
Mix_PlayMusic(backgroundMusic, -1);
|
||||
|
||||
std::vector<Kelp> kelps;
|
||||
std::vector<Rock> rocks;
|
||||
std::vector<Coral> corals;
|
||||
@@ -856,6 +903,24 @@ void cleanup() {
|
||||
std::cerr << "Exception caught for DestroyWindow: " << e.what() << std::endl;
|
||||
}
|
||||
|
||||
try {
|
||||
if (backgroundMusic != nullptr) {
|
||||
Mix_FreeMusic(backgroundMusic);
|
||||
backgroundMusic = nullptr;
|
||||
}
|
||||
} catch (const std::exception& e) {
|
||||
std::cerr << "Exception caught for FreeMusic: " << e.what() << std::endl;
|
||||
}
|
||||
|
||||
try {
|
||||
if (menuMusic != nullptr) {
|
||||
Mix_FreeMusic(menuMusic);
|
||||
menuMusic = nullptr;
|
||||
}
|
||||
} catch (const std::exception& e) {
|
||||
std::cerr << "Exception caught for FreeMusic (menuMusic): " << e.what() << std::endl;
|
||||
}
|
||||
|
||||
try {
|
||||
IMG_Quit();
|
||||
} catch (const std::exception& e) {
|
||||
|
||||
11
shark.cpp
11
shark.cpp
@@ -22,6 +22,11 @@ Shark::Shark(const int x, const int y, const float vx, const float vy, const int
|
||||
std::cerr << "Erreur de chargement du son du requin: " << Mix_GetError() << std::endl;
|
||||
}
|
||||
|
||||
approachingSound = Mix_LoadWAV("../sounds/Shark-approching.wav");
|
||||
if (approachingSound == nullptr) {
|
||||
std::cerr << "Erreur de chargement du son du requin: " << Mix_GetError() << std::endl;
|
||||
}
|
||||
|
||||
lastSoundTime = std::chrono::steady_clock::now();
|
||||
}
|
||||
|
||||
@@ -69,6 +74,7 @@ void Shark::cycle() {
|
||||
if (isInView(player)) {
|
||||
checkNeighborhood(player, xpos_avg, ypos_avg, xvel_avg, yvel_avg, neighboring_player);
|
||||
checkCollision(player);
|
||||
Mix_PlayChannel(-1, approachingSound, 0);
|
||||
}
|
||||
}
|
||||
if (neighboring_player > 0) {
|
||||
@@ -117,6 +123,11 @@ Shark::~Shark() {
|
||||
Mix_FreeChunk(sharkSound);
|
||||
sharkSound = nullptr;
|
||||
}
|
||||
|
||||
if (approachingSound) {
|
||||
Mix_FreeChunk(approachingSound);
|
||||
approachingSound = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
void Shark::updatePosition(int newX, int newY) {
|
||||
|
||||
1
shark.h
1
shark.h
@@ -31,6 +31,7 @@ private:
|
||||
std::vector<Player> &players_list;
|
||||
|
||||
Mix_Chunk* sharkSound;
|
||||
Mix_Chunk* approachingSound;
|
||||
std::chrono::steady_clock::time_point lastSoundTime;
|
||||
std::chrono::steady_clock::time_point lastSendTime;
|
||||
|
||||
|
||||
BIN
sounds/Menu.wav
Normal file
BIN
sounds/Menu.wav
Normal file
Binary file not shown.
BIN
sounds/Playing.wav
Normal file
BIN
sounds/Playing.wav
Normal file
Binary file not shown.
BIN
sounds/Shark-approching.wav
Normal file
BIN
sounds/Shark-approching.wav
Normal file
Binary file not shown.
Reference in New Issue
Block a user