aboutsummaryrefslogtreecommitdiff
path: root/deps/raylib/examples/audio/audio_sound_multi.c
diff options
context:
space:
mode:
authorbonmas14 <bonmas14@gmail.com>2025-09-20 22:28:15 +0300
committerbonmas14 <bonmas14@gmail.com>2025-09-20 22:28:15 +0300
commitcdda4c4182c9ee068567529715e4a5c68a8efb58 (patch)
tree38a63f62a64018a2d35fc33354f8589fd33b7514 /deps/raylib/examples/audio/audio_sound_multi.c
downloadc_wizard-cdda4c4182c9ee068567529715e4a5c68a8efb58.tar.gz
c_wizard-cdda4c4182c9ee068567529715e4a5c68a8efb58.zip
Init commit v1.0
Diffstat (limited to 'deps/raylib/examples/audio/audio_sound_multi.c')
-rw-r--r--deps/raylib/examples/audio/audio_sound_multi.c87
1 files changed, 87 insertions, 0 deletions
diff --git a/deps/raylib/examples/audio/audio_sound_multi.c b/deps/raylib/examples/audio/audio_sound_multi.c
new file mode 100644
index 0000000..d5472ef
--- /dev/null
+++ b/deps/raylib/examples/audio/audio_sound_multi.c
@@ -0,0 +1,87 @@
+/*******************************************************************************************
+*
+* raylib [audio] example - Playing sound multiple times
+*
+* Example originally created with raylib 4.6
+*
+* Example licensed under an unmodified zlib/libpng license, which is an OSI-certified,
+* BSD-like license that allows static linking with closed source software
+*
+* Copyright (c) 2023 Jeffery Myers (@JeffM2501)
+*
+********************************************************************************************/
+
+#include "raylib.h"
+
+#define MAX_SOUNDS 10
+Sound soundArray[MAX_SOUNDS] = { 0 };
+int currentSound;
+
+//------------------------------------------------------------------------------------
+// Program main entry point
+//------------------------------------------------------------------------------------
+int main(void)
+{
+ // Initialization
+ //--------------------------------------------------------------------------------------
+ const int screenWidth = 800;
+ const int screenHeight = 450;
+
+ InitWindow(screenWidth, screenHeight, "raylib [audio] example - playing sound multiple times");
+
+ InitAudioDevice(); // Initialize audio device
+
+ // load the sound list
+ soundArray[0] = LoadSound("resources/sound.wav"); // Load WAV audio file into the first slot as the 'source' sound
+ // this sound owns the sample data
+ for (int i = 1; i < MAX_SOUNDS; i++)
+ {
+ soundArray[i] = LoadSoundAlias(soundArray[0]); // Load an alias of the sound into slots 1-9. These do not own the sound data, but can be played
+ }
+ currentSound = 0; // set the sound list to the start
+
+ SetTargetFPS(60); // Set our game to run at 60 frames-per-second
+ //--------------------------------------------------------------------------------------
+
+ // Main game loop
+ while (!WindowShouldClose()) // Detect window close button or ESC key
+ {
+ // Update
+ //----------------------------------------------------------------------------------
+ if (IsKeyPressed(KEY_SPACE))
+ {
+ PlaySound(soundArray[currentSound]); // play the next open sound slot
+ currentSound++; // increment the sound slot
+ if (currentSound >= MAX_SOUNDS) // if the sound slot is out of bounds, go back to 0
+ currentSound = 0;
+
+ // Note: a better way would be to look at the list for the first sound that is not playing and use that slot
+ }
+
+ //----------------------------------------------------------------------------------
+
+ // Draw
+ //----------------------------------------------------------------------------------
+ BeginDrawing();
+
+ ClearBackground(RAYWHITE);
+
+ DrawText("Press SPACE to PLAY a WAV sound!", 200, 180, 20, LIGHTGRAY);
+
+ EndDrawing();
+ //----------------------------------------------------------------------------------
+ }
+
+ // De-Initialization
+ //--------------------------------------------------------------------------------------
+ for (int i = 1; i < MAX_SOUNDS; i++)
+ UnloadSoundAlias(soundArray[i]); // Unload sound aliases
+ UnloadSound(soundArray[0]); // Unload source sound data
+
+ CloseAudioDevice(); // Close audio device
+
+ CloseWindow(); // Close window and OpenGL context
+ //--------------------------------------------------------------------------------------
+
+ return 0;
+} \ No newline at end of file