From 7a7c5d73982fcbab3f1a22f6f71f60c8c6027d44 Mon Sep 17 00:00:00 2001 From: ElnuDev Date: Wed, 9 Mar 2022 13:16:54 -0800 Subject: [PATCH] Add sound effects --- CMakeLists.txt | 2 +- res/game_over.wav | Bin 0 -> 28706 bytes res/level_up.wav | Bin 0 -> 13407 bytes res/new_highscore.wav | Bin 0 -> 37393 bytes res/rotate.wav | Bin 0 -> 2732 bytes res/row_clear.wav | Bin 0 -> 13701 bytes res/snap.wav | Bin 0 -> 4954 bytes src/Main.cpp | 78 ++++++++++++++++++++++++++++++++++++------ 8 files changed, 68 insertions(+), 12 deletions(-) create mode 100644 res/game_over.wav create mode 100644 res/level_up.wav create mode 100644 res/new_highscore.wav create mode 100644 res/rotate.wav create mode 100644 res/row_clear.wav create mode 100644 res/snap.wav diff --git a/CMakeLists.txt b/CMakeLists.txt index 7792dc5..775bad9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -11,7 +11,7 @@ add_executable(${ProjectName} ${SRC_FILES}) target_include_directories(${ProjectName} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include) find_package(SFML 2.5 COMPONENTS system window graphics network audio REQUIRED) -target_link_libraries(${ProjectName} sfml-graphics) +target_link_libraries(${ProjectName} sfml-graphics sfml-audio) # Generates compile_commands.json in build folder, which clangd will pick up # Without this, clangd might assume the wrong C++ version diff --git a/res/game_over.wav b/res/game_over.wav new file mode 100644 index 0000000000000000000000000000000000000000..a071dc373681804dfd216b5c720d07df070ee5f1 GIT binary patch literal 28706 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 literal 0 HcmV?d00001 diff --git a/res/level_up.wav b/res/level_up.wav new file mode 100644 index 0000000000000000000000000000000000000000..9758683c7459f7cd33c74d0ec284c8684ef2b136 GIT binary patch literal 13407 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 literal 0 HcmV?d00001 diff --git a/res/rotate.wav b/res/rotate.wav new file mode 100644 index 0000000000000000000000000000000000000000..08f2fc6dca09389dd502a5eb0189ea557c6ace9e GIT binary patch literal 2732 zcmd7PSyLie76)+qZDOA0Bh0s$npVql1w{psUG`OWWM2hYWJf?iK#)atP*6e31ueCz z`fJTev?}bVh_2~=n3x~I&CHuOGymsY{NlnwUAH8Jsi7DMDHErE2kcm446{OR_hc@%}a^fmO%#@z z+r!yf@8kXB)2F*Zr=0RzReUNIHS>P*{R|3A;VI1CM4@$YegF9QaNF;c4?+&@CX=wd zFg^AD!`vc{%2gQM(ZlNL;P&Cur{VQQyPS?V4Kgkjw=_3BH8nlIv_|1d^^Rb&(CA&> z-akCRqE6*7=C!HCEHZ9se&)l6nfXO5i6K&&oS{^q-W^;I@9&2t9{p+}>PY^?U7FF}ok~Y#UT!9+R?;U0y^j%+I6Hm{mM!gCmrwjrQGeB3rDsy61zd zYj8C5C*Xg-W9Xk6vDV z{CIWQKkv31$AxS%8t~Z7TBSt5p;L%>>DfhpaCvz-=%4pa+l@*wmrm>jc6Y1>jY1;iGB?OXJZ^Pm8G~8EEU&EM@B}iA!RCvk zN{zu{cl*MzWF}v#)LSRrv-68SxHv!Sp0t~_<6t|)tHb3D?!{A?T%la8H`^!O-q|_gtk*s5w43!xxscBu zBx2!!*X^*G4H}hPx+&nYnRFV3L|n(O;c!@hgEy}eh-3BC$-drPZ4(+dFP= zAROIKr4RGPa-~*pwmK)Lr`>M12mjNPPP^5pSC31D{9)!G5#I|3d>*I6W-;nDTS}Q^ zQ^@DCS&R)Dl|m*F3G3_YcmM|ikw_v_s2g+!i_PT;L}H0dp;Bx0MzeL>;dFcb!ALZo zNTsv6qeAJpQmr)_%~reJdDU*Wn$1SNRyi)03P-tY<{+7fMx7`Z~VrPk>5Mw8iU z+ji_Y-Mc=2FdT`-_7katboMZpKPnVUWr$X-)#~+n<2$&h)vDFXF=Q(ij`F#~Y$kn> zf`GB;UL+KRjJqDUbH}l5vs%nXgI=fAs8vdZTqc!B#1K~?fWTZ1hs|cOm`nzsBQ{=* zE|6I!lgVPS*&Gg+%j5C+0*DUT#S*DhCYLLeDx?C9R;Sk+j3$%WVzt?}?RF@|>2iB^ zy*_^+7z#)BqOtgXB9Vlm(wQvOmCNUkjtYfBu~;mXO64EHYzc0{lB1)1KA+1S9%i!{ zDDfbbN+uKg`|%hQx)+IrLr`qM@AE>v9=FTo+}UwB?AuVb)nYN5Oh%|(uhVI@8jV`L zwWU%il?sJIE|rd(Wm0D zZ6inkfMfxX3P3yr1O<>70oef*fq-%l-WO0I!t-iWHw>?BaJ@7I#!-uq;iY59IBMX_ zFly+xVbtR91Jd;08EwT6!)TX&HXz&iKk>65e|Z0g+I~9myZ-!F7vJ0aXHLFt&|f~j L+4292Q^$V*@5w&a literal 0 HcmV?d00001 diff --git a/res/row_clear.wav b/res/row_clear.wav new file mode 100644 index 0000000000000000000000000000000000000000..2400a9dd8b24a92e0e16c48ea2a0ed665fd94df1 GIT binary patch literal 13701 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 X{a^LR_9KDsCxLJNTlGWWcbdQ-)vuEo literal 0 HcmV?d00001 diff --git a/src/Main.cpp b/src/Main.cpp index 209f8d2..f85a9e0 100644 --- a/src/Main.cpp +++ b/src/Main.cpp @@ -1,4 +1,6 @@ - +#include +#include +#include #include #include #include @@ -346,6 +348,48 @@ int main() uint update_interval = get_update_interval(0); + // https://sfxr.me/#57uBnWWZeyDTsBRrJsAp2Vwd76cMVrdeRQ7DirNQW5XekKxcrCUNx47Zggh7Uqw4R5FdeUpyk362uhjWmpNHmqxE7JBp3EkxDxfJ1VjzMRpuSHieW6B5iyVFM + sf::SoundBuffer rotate_buffer; + rotate_buffer.loadFromFile("../res/rotate.wav"); + + sf::Sound rotate_sound; + rotate_sound.setBuffer(rotate_buffer); + + // https://sfxr.me/#57uBnWTMa2LUtaPa3P8xWZekiRxNwCPFWpRoPDVXDJM9KHkiGJcs6J62FRcjMY5oVNdT73MtmUf5rXCPvSZWL7AZuTRWWjKbPKTpZjT85AcZ6htUqTswkjksZ + sf::SoundBuffer snap_buffer; + snap_buffer.loadFromFile("../res/snap.wav"); + + sf::Sound snap_sound; + snap_sound.setBuffer(snap_buffer); + + // https://sfxr.me/#57uBnWbareN7MJJsWGD8eFCrqjikS9f8JXg8jvmKzMdVtqmRsb81eToSUpnkqgFhvxD2QoAjpw4SmGZHZjbhEiPQKetRSHCHXYFZzD7Q6RVVS9CRSeRAb6bZp + sf::SoundBuffer game_over_buffer; + game_over_buffer.loadFromFile("../res/game_over.wav"); + + sf::Sound game_over_sound; + game_over_sound.setBuffer(game_over_buffer); + + // https://sfxr.me/#7BMHBGMfGk8EHV8czJkUucUm8EMAnMNxiqYyTfKkMpHFJu44GEdD7xP6E8NM3K7RKRExTpagPBAiWf7BLtC52CEWJVGHh8hwDLygoEG86tcPth2UtmfdrXLoh + sf::SoundBuffer row_clear_buffer; + row_clear_buffer.loadFromFile("../res/row_clear.wav"); + + sf::Sound row_clear_sound; + row_clear_sound.setBuffer(row_clear_buffer); + + // https://sfxr.me/#57uBnWg8448kTPqWAxeDvZ5CP5JWbrfJGWuRcTjva5uX3vvBnEAZ6SfiH9oLKMXgsusuJwGWx6KPfvLfHtqnhLxr476ptGv4jPbfNhQaFMYeMHFdHk9SotQ4X + sf::SoundBuffer level_up_buffer; + level_up_buffer.loadFromFile("../res/level_up.wav"); + + sf::Sound level_up_sound; + level_up_sound.setBuffer(level_up_buffer); + + // https://sfxr.me/#34T6PkzvrkfdahGDBAh1uYGXTwZ8rG54kxfHpgdVCPxqG7yyK5UuqgiK9Z8Q5177itxbkSNfLSHm4zTkemT4iyxJpW89VJx82feaq8qxZeA5AJR2nWZZR59hq + sf::SoundBuffer new_highscore_buffer; + new_highscore_buffer.loadFromFile("../res/new_highscore.wav"); + + sf::Sound new_highscore_sound; + new_highscore_sound.setBuffer(new_highscore_buffer); + while (window.isOpen()) { sf::Event event; @@ -414,6 +458,7 @@ int main() } } rotate = false; + rotate_sound.play(); } // Horizontal movement @@ -452,6 +497,7 @@ int main() if (snap) { block.position.y += snap_offset; snap = false; + snap_sound.play(); } // Land checking @@ -509,6 +555,7 @@ int main() grid[y][x] = nullptr; } } + game_over_sound.play(); } else { tiles += block.get_tiles().size(); blocks++; @@ -553,17 +600,26 @@ int main() scored = POINTS_4_LINES; break; } - int level = get_level(lines); - scored *= level + 1; - score += scored; - lines += cleared_lines; - if (score > highscore) { - highscore = score; - std::ofstream highscore_file(highscore_file_path); - highscore_file << highscore; - highscore_file.close(); + if (scored > 0) { + int level = get_level(lines); + scored *= level + 1; + if (score + scored > highscore && score < highscore) { + new_highscore_sound.play(); + } + score += scored; + lines += cleared_lines; + if (level != get_level(lines)) { + level_up_sound.play(); + } + if (score > highscore) { + highscore = score; + std::ofstream highscore_file(highscore_file_path); + highscore_file << highscore; + highscore_file.close(); + } + update_interval = get_update_interval(level); + row_clear_sound.play(); } - update_interval = get_update_interval(level); } block = next_block; next_block = Block();