[Assets] Add example

This commit is contained in:
SweetId 2024-03-24 22:00:25 -04:00
parent 5c6ea6c485
commit 1846d42401
2 changed files with 42 additions and 0 deletions

39
examples/Assets/main.cpp Normal file
View File

@ -0,0 +1,39 @@
#include <Nazara/Audio.hpp>
#include <Nazara/Core.hpp>
#include <Nazara/Platform.hpp>
int main(int argc, char* argv[])
{
std::filesystem::path resourceDir = "assets";
if (!std::filesystem::is_directory(resourceDir) && std::filesystem::is_directory("../.." / resourceDir))
resourceDir = "../.." / resourceDir;
Nz::Application<Nz::Audio> app(argc, argv);
auto& windowing = app.AddComponent<Nz::WindowingAppComponent>();
auto& fs = app.AddComponent<Nz::FilesystemAppComponent>();
fs.Mount("game:/", resourceDir);
auto& catalog = app.AddComponent<Nz::AssetCatalogAppComponent>();
catalog.AddFolder("game:/");
// Load an asset from its path
Nz::Asset<Nz::Music> music = Nz::Asset<Nz::Music>::LoadFromFile("game:/examples/Audio/file_example_MP3_700KB.nzasset");
// or by its name
music = catalog.Load<Nz::Music>("file_example_MP3_700KB");
music->Play();
Nz::Asset<Nz::Sound> sound = catalog.Load<Nz::Sound>("examples/Audio/siren");
sound->Play();
app.AddUpdaterFunc([&]
{
if (!music->IsPlaying())
app.Quit();
std::this_thread::sleep_for(std::chrono::milliseconds(100));
});
return app.Run();
}

View File

@ -0,0 +1,3 @@
target("Assets")
add_deps("NazaraGraphics", "NazaraAudio")
add_files("main.cpp")