Subsistema d'àudio: port de ../aee/core/audio refactoritzat amb namespace Ja, desacoblat d'Options via Audio::Config i extensió de Resource::Cache per preloading de música i sons; pyramid_1.ogg sona a GameScene (v0.15.0)
This commit is contained in:
1 parent
6f3fafbfff
commit
e2b8d0e459
16 files changed
+6796
-5
No files matched your search
@@ -429,6 +429,17 @@ namespace Options {
|
||||
return config;
|
||||
}
|
||||
|
||||
auto buildAudioConfig() -> ::Audio::Config {
|
||||
return {
|
||||
.enabled = audio.enabled,
|
||||
.volume = audio.volume,
|
||||
.music_enabled = audio.music.enabled,
|
||||
.music_volume = audio.music.volume,
|
||||
.sound_enabled = audio.sound.enabled,
|
||||
.sound_volume = audio.sound.volume,
|
||||
};
|
||||
}
|
||||
|
||||
void setPostFXFile(const std::string& path) {
|
||||
postfx_file_path = path;
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
#include "core/audio/audio.hpp"
|
||||
#include "core/rendering/screen.hpp"
|
||||
#include "core/rendering/shader_backend.hpp"
|
||||
#include "utils/defaults.hpp"
|
||||
@@ -120,5 +121,8 @@ namespace Options {
|
||||
[[nodiscard]] auto buildPostFXParams() -> Rendering::PostFXParams;
|
||||
[[nodiscard]] auto buildCrtPiParams() -> Rendering::CrtPiParams;
|
||||
[[nodiscard]] auto buildActiveShader() -> Rendering::ShaderType;
|
||||
// `::Audio` és la classe global d'àudio (no `Options::Audio`, que és la
|
||||
// struct serialitzable). Retornem la seua Config per passar-la a init().
|
||||
[[nodiscard]] auto buildAudioConfig() -> ::Audio::Config;
|
||||
|
||||
} // namespace Options
|
||||
@@ -7,6 +7,7 @@
|
||||
#include <iterator>
|
||||
#include <vector>
|
||||
|
||||
#include "core/audio/audio.hpp"
|
||||
#include "core/input/global_inputs.hpp"
|
||||
#include "core/rendering/notifier.hpp"
|
||||
#include "core/rendering/render_info.hpp"
|
||||
@@ -42,6 +43,13 @@ GameScene::GameScene()
|
||||
constexpr auto SPAWN_X = CORRIDOR_CENTER_X - (static_cast<float>(Player::SPRITE_WIDTH) / 2.0F);
|
||||
constexpr auto SPAWN_Y = CORRIDOR_CENTER_Y - static_cast<float>(Player::COLLISION_Y_OFFSET) - (static_cast<float>(Player::COLLISION_SIZE) / 2.0F);
|
||||
players_.emplace_back(std::make_unique<Player>(SPAWN_X, SPAWN_Y, CONTROLS_P1));
|
||||
|
||||
// Música de fons de la piràmide 1 en bucle infinit. El track ja està al
|
||||
// Resource::Cache (preload al Director), així que playMusic només mou el
|
||||
// punter cap a jail_audio i obri l'stream.
|
||||
if (Audio::get() != nullptr) {
|
||||
Audio::get()->playMusic("pyramid_1.ogg", -1);
|
||||
}
|
||||
}
|
||||
|
||||
GameScene::~GameScene() = default;
|
||||
|
||||
Reference in new issue
Block a user