From 92ab6d3a9cf992145d30b33154fcea6a7c2c2c5d Mon Sep 17 00:00:00 2001 From: sigonasr2 Date: Wed, 24 Aug 2022 21:58:12 -0500 Subject: [PATCH] Plays sound, but only in emscripten for now. Something's wrong with ALSA Co-authored-by: sigonasr2 --- C++/scripts/web.sh | 4 +- C++ProjectTemplate | Bin 538960 -> 17384 bytes C++ProjectTemplate.data | Bin 0 -> 1706347 bytes C++ProjectTemplate.html | 76 +- C++ProjectTemplate.js | 2 +- C++ProjectTemplate.wasm | Bin 300705 -> 869757 bytes assets/laserShoot.wav | Bin 0 -> 12557 bytes assets/sample-9s.wav | Bin 0 -> 1693790 bytes main.cpp | 71 +- sig | 4 +- soundExtension.h | 1780 +++++++++++++++++++++++++++++++++++++++ 11 files changed, 1917 insertions(+), 20 deletions(-) create mode 100644 C++ProjectTemplate.data create mode 100644 assets/laserShoot.wav create mode 100644 assets/sample-9s.wav create mode 100644 soundExtension.h diff --git a/C++/scripts/web.sh b/C++/scripts/web.sh index eef8c5b..7f48358 100755 --- a/C++/scripts/web.sh +++ b/C++/scripts/web.sh @@ -1,9 +1,9 @@ #Compiles emscripten instance of this project for the web. #C++ if [ -d "assets" ]; then - em++ -std=c++17 -O2 -s ALLOW_MEMORY_GROWTH=1 -s MAX_WEBGL_VERSION=2 -s MIN_WEBGL_VERSION=2 -s USE_LIBPNG=1 $(find . -type f -name "*.cpp") -o ${PROJECT_NAME}.html -I pixelGameEngine.h --preload-file ./assets + em++ -std=c++17 -O2 -s ALLOW_MEMORY_GROWTH=1 -s MAX_WEBGL_VERSION=2 -s MIN_WEBGL_VERSION=2 -s USE_SDL_MIXER=2 -s USE_LIBPNG=1 $(find . -type f -name "*.cpp") -o ${PROJECT_NAME}.html -I pixelGameEngine.h --preload-file ./assets else - em++ -std=c++17 -O2 -s ALLOW_MEMORY_GROWTH=1 -s MAX_WEBGL_VERSION=2 -s MIN_WEBGL_VERSION=2 -s USE_LIBPNG=1 $(find . -type f -name "*.cpp") -o ${PROJECT_NAME}.html -I pixelGameEngine.h + em++ -std=c++17 -O2 -s ALLOW_MEMORY_GROWTH=1 -s MAX_WEBGL_VERSION=2 -s MIN_WEBGL_VERSION=2 -s USE_SDL_MIXER=2 -s USE_LIBPNG=1 $(find . -type f -name "*.cpp") -o ${PROJECT_NAME}.html -I pixelGameEngine.h fi cp buildtemplate.html ${PROJECT_NAME}.html diff --git a/C++ProjectTemplate b/C++ProjectTemplate index dc59e7a1cd0c8e4b938a5c15df93a4c59a04fde9..8f7c62637d19e16570e08ffc7dba81b935eabe7f 100755 GIT binary patch literal 17384 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 GivI)z(SyMN literal 538960 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