feat(音频): 添加从NPK加载音频文件的功能
实现SoundPackArchive系统用于管理NPK格式的音频资源包 为Music和Sound类添加loadFromNpk方法支持从NPK加载音频 新增音频播放控制功能如暂停、恢复、停止等
This commit is contained in:
BIN
Game/assets/SoundPacks/sounds_ui.npk
Normal file
BIN
Game/assets/SoundPacks/sounds_ui.npk
Normal file
Binary file not shown.
@@ -18,6 +18,8 @@
|
||||
#include <frostbite2D/audio/sound.h>
|
||||
#include <frostbite2D/resource/npk_archive.h>
|
||||
|
||||
#include <frostbite2D/resource/sound_pack_archive.h>
|
||||
|
||||
using namespace frostbite2D;
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
@@ -117,11 +119,30 @@ int main(int argc, char **argv) {
|
||||
auto sprite1 = Sprite::createFromNpk("sprite/newtitle/nangua.img", 0);
|
||||
if (sprite1) {
|
||||
sprite1->SetPosition(0, 0);
|
||||
sprite1->SetScale(5.0f);
|
||||
menuScene->AddActor(sprite1);
|
||||
} else {
|
||||
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Failed to create sprite from NPK!");
|
||||
}
|
||||
|
||||
SoundPackArchive &archive = SoundPackArchive::get();
|
||||
archive.setSoundPackDirectory("assets/SoundPacks");
|
||||
archive.init();
|
||||
|
||||
// auto sound = Sound::loadFromNpk("sounds/ui/adventurer_maker_name.ogg");
|
||||
// if (sound) {
|
||||
// sound->play();
|
||||
// } else {
|
||||
// SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Failed to load sound!");
|
||||
// }
|
||||
|
||||
auto music = Music::loadFromNpk("sounds/ui/amazing_box.ogg");
|
||||
if (music) {
|
||||
music->play();
|
||||
} else {
|
||||
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Failed to load music!");
|
||||
}
|
||||
|
||||
app.run();
|
||||
|
||||
app.shutdown();
|
||||
|
||||
Reference in New Issue
Block a user