From 077ab6d56bea4fc464cd5c07e02071e911eac64a Mon Sep 17 00:00:00 2001 From: Dalton Overmyer Date: Thu, 29 Feb 2024 11:26:49 -0600 Subject: [PATCH] Add an example that generates a random sequence. (#3846) --- examples/Makefile | 1 + examples/Makefile.Web | 4 + examples/README.md | 1 + examples/core/core_random_sequence.c | 176 ++++++++ examples/core/core_random_sequence.png | Bin 0 -> 34025 bytes .../examples/core_random_sequence.vcxproj | 387 ++++++++++++++++++ projects/VS2022/raylib.sln | 2 + 7 files changed, 571 insertions(+) create mode 100644 examples/core/core_random_sequence.c create mode 100644 examples/core/core_random_sequence.png create mode 100644 projects/VS2022/examples/core_random_sequence.vcxproj diff --git a/examples/Makefile b/examples/Makefile index 8362b8c8e..9ce05da54 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -453,6 +453,7 @@ CORE = \ core/core_input_mouse_wheel \ core/core_input_multitouch \ core/core_loading_thread \ + core/core_random_sequence \ core/core_random_values \ core/core_scissor_test \ core/core_smooth_pixelperfect \ diff --git a/examples/Makefile.Web b/examples/Makefile.Web index 204db50cc..af3325aa5 100644 --- a/examples/Makefile.Web +++ b/examples/Makefile.Web @@ -359,6 +359,7 @@ CORE = \ core/core_input_mouse_wheel \ core/core_input_multitouch \ core/core_loading_thread \ + core/core_random_sequence \ core/core_random_values \ core/core_scissor_test \ core/core_smooth_pixelperfect \ @@ -588,6 +589,9 @@ core/core_input_multitouch: core/core_input_multitouch.c core/core_loading_thread: core/core_loading_thread.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -sUSE_PTHREADS=1 +core/core_random_sequence: core/core_random_sequence.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + core/core_random_values: core/core_random_values.c $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) diff --git a/examples/README.md b/examples/README.md index 0fed8acd0..94f5369db 100644 --- a/examples/README.md +++ b/examples/README.md @@ -55,6 +55,7 @@ Examples using raylib core platform functionality like window creation, inputs, | 29 | [core_custom_frame_control](core/core_custom_frame_control.c) | core_custom_frame_control | ⭐️⭐️⭐️⭐️ | **4.0** | **4.0** | [Ray](https://github.com/raysan5) | | 30 | [core_smooth_pixelperfect](core/core_smooth_pixelperfect.c) | core_smooth_pixelperfect | ⭐️⭐️⭐️☆ | 3.7 | **4.0** | [Giancamillo Alessandroni](https://github.com/NotManyIdeasDev) | | 31 | [core_window_should_close](core/core_window_should_close.c) | core_window_should_close | ⭐️⭐️☆☆ | **4.2** | **4.2** | [Ray](https://github.com/raysan5) | +| 32 | [core_random_sequence](core/core_random_sequence.c) | core_random_sequence | ⭐️☆☆☆ | **5.0** | **5.0** | [REDl3east](https://github.com/REDl3east) | ### category: shapes diff --git a/examples/core/core_random_sequence.c b/examples/core/core_random_sequence.c new file mode 100644 index 000000000..c946b64da --- /dev/null +++ b/examples/core/core_random_sequence.c @@ -0,0 +1,176 @@ +/******************************************************************************************* +* +* raylib [core] example - Generates a random sequence +* +* Example originally created with raylib 5.0, last time updated with raylib 5.0 +* +* Example contributed by Dalton Overmyer (@REDl3east) and reviewed by Ramon Santamaria (@raysan5) +* +* 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 Dalton Overmyer (@REDl3east) +* +********************************************************************************************/ + +#include "raylib.h" +#include "raymath.h" + +#include // Required for: malloc() and free() + +typedef struct ColorRect{ + Color c; + Rectangle r; +} ColorRect; + +static Color GenerateRandomColor(); +static ColorRect* GenerateRandomColorRectSequence(float rectCount, float rectWidth, float screenWidth, float screenHeight); +static void ShuffleColorRectSequence(ColorRect* rectangles, int rectCount); +static void DrawTextCenterKeyHelp(const char* key, const char* text, int posX, int posY, int fontSize, Color color); + +//------------------------------------------------------------------------------------ +// Program main entry point +//------------------------------------------------------------------------------------ +int main(void) { + // Initialization + //-------------------------------------------------------------------------------------- + const int screenWidth = 800; + const int screenHeight = 450; + + InitWindow(screenWidth, screenHeight, "raylib [core] example - Generates a random sequence"); + + int rectCount = 20; + float rectSize = (float)screenWidth/rectCount; + ColorRect* rectangles = GenerateRandomColorRectSequence(rectCount, rectSize, screenWidth, 0.75f * screenHeight); + + SetTargetFPS(60); + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + + if(IsKeyPressed(KEY_SPACE)) + { + ShuffleColorRectSequence(rectangles, rectCount); + } + + if(IsKeyPressed(KEY_UP)) + { + rectCount++; + rectSize = (float)screenWidth/rectCount; + free(rectangles); + rectangles = GenerateRandomColorRectSequence(rectCount, rectSize, screenWidth, 0.75f * screenHeight); + } + + if(IsKeyPressed(KEY_DOWN)) + { + if(rectCount >= 4){ + rectCount--; + rectSize = (float)screenWidth/rectCount; + free(rectangles); + rectangles = GenerateRandomColorRectSequence(rectCount, rectSize, screenWidth, 0.75f * screenHeight); + } + } + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + int fontSize = 20; + for(int x=0;xc = r2->c; + r1->r.height = r2->r.height; + r1->r.y = r2->r.y; + r2->c = tmp.c; + r2->r.height = tmp.r.height; + r2->r.y = tmp.r.y; + + } + UnloadRandomSequence(seq); +} + +static void DrawTextCenterKeyHelp(const char* key, const char* text, int posX, int posY, int fontSize, Color color) +{ + int spaceSize = MeasureText(" ", fontSize); + int pressSize = MeasureText("Press", fontSize); + int keySize = MeasureText(key, fontSize); + int textSize = MeasureText(text, fontSize); + int totalSize = pressSize + 2 * spaceSize + keySize + 2 * spaceSize + textSize; + int textSizeCurrent = 0; + + DrawText("Press", posX, posY, fontSize, color); + textSizeCurrent += pressSize + 2 * spaceSize; + DrawText(key, posX + textSizeCurrent, posY, fontSize, RED); + DrawRectangle(posX + textSizeCurrent, posY + fontSize, keySize, 3, RED); + textSizeCurrent += keySize + 2 * spaceSize; + DrawText(text, posX + textSizeCurrent, posY, fontSize, color); +} \ No newline at end of file diff --git a/examples/core/core_random_sequence.png b/examples/core/core_random_sequence.png new file mode 100644 index 0000000000000000000000000000000000000000..206aa8b4021ee2acd8e3ef2b8d8f999e698b357e GIT binary patch literal 34025 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≤bZsAFQ5WY^J83v@4hm^0h=p5i)Zjf<0> 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 nNU$NY09F>Y&Oa7%W?*=6?5Rq38 + + + + Debug.DLL + Win32 + + + Debug.DLL + x64 + + + Debug + Win32 + + + Debug + x64 + + + Release.DLL + Win32 + + + Release.DLL + x64 + + + Release + Win32 + + + Release + x64 + + + + {6B8BAAF1-75C7-4C68-80B8-0E2A9EABBD9A} + Win32Proj + core_random_sequence + 10.0 + core_random_sequence + + + + Application + true + $(DefaultPlatformToolset) + Unicode + + + Application + true + $(DefaultPlatformToolset) + Unicode + + + Application + true + $(DefaultPlatformToolset) + Unicode + + + Application + true + $(DefaultPlatformToolset) + Unicode + + + Application + false + $(DefaultPlatformToolset) + true + Unicode + + + Application + false + $(DefaultPlatformToolset) + true + Unicode + + + Application + false + $(DefaultPlatformToolset) + true + Unicode + + + Application + false + $(DefaultPlatformToolset) + true + Unicode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + true + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + true + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + true + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + false + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + false + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + false + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + false + $(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\ + $(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\ + + + $(SolutionDir)..\..\examples\core + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\core + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\core + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\core + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\core + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\core + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\core + WindowsLocalDebugger + + + $(SolutionDir)..\..\examples\core + WindowsLocalDebugger + + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + CompileAsC + $(SolutionDir)..\..\src;%(AdditionalIncludeDirectories) + + + Console + true + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + CompileAsC + $(SolutionDir)..\..\src;%(AdditionalIncludeDirectories) + /FS %(AdditionalOptions) + + + Console + true + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + CompileAsC + $(SolutionDir)..\..\src;%(AdditionalIncludeDirectories) + + + Console + true + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + xcopy /y /d "$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\raylib.dll" "$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)" + Copy Debug DLL to output directory + + + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions) + CompileAsC + $(SolutionDir)..\..\src;%(AdditionalIncludeDirectories) + + + Console + true + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + xcopy /y /d "$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\raylib.dll" "$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)" + Copy Debug DLL to output directory + + + + + Level3 + + + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions);PLATFORM_DESKTOP + $(SolutionDir)..\..\src;%(AdditionalIncludeDirectories) + CompileAsC + true + + + Console + true + true + true + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + + + + + Level3 + + + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions);PLATFORM_DESKTOP + $(SolutionDir)..\..\src;%(AdditionalIncludeDirectories) + CompileAsC + true + + + Console + true + true + true + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + + + + + Level3 + + + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions);PLATFORM_DESKTOP + $(SolutionDir)..\..\src;%(AdditionalIncludeDirectories) + CompileAsC + true + + + Console + true + true + true + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + + + xcopy /y /d "$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\raylib.dll" "$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)" + + + Copy Release DLL to output directory + + + + + Level3 + + + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions);PLATFORM_DESKTOP + $(SolutionDir)..\..\src;%(AdditionalIncludeDirectories) + CompileAsC + true + + + Console + true + true + true + raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + $(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\ + + + xcopy /y /d "$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\raylib.dll" "$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)" + + + Copy Release DLL to output directory + + + + + + + + {e89d61ac-55de-4482-afd4-df7242ebc859} + + + + + + \ No newline at end of file diff --git a/projects/VS2022/raylib.sln b/projects/VS2022/raylib.sln index 3ce44a9ad..c9f50f6b6 100644 --- a/projects/VS2022/raylib.sln +++ b/projects/VS2022/raylib.sln @@ -53,6 +53,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core_input_multitouch", "ex EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core_loading_thread", "examples\core_loading_thread.vcxproj", "{F026020F-7B00-40C8-91C3-5DE85EC45A95}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core_random_sequence", "examples\core_random_sequence.vcxproj", "{6B8BAAF1-75C7-4C68-80B8-0E2A9EABBD9A}" +EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core_random_values", "examples\core_random_values.vcxproj", "{6B8BAAF1-75C7-4C68-80B8-0E2A9EABBD9A}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core_scissor_test", "examples\core_scissor_test.vcxproj", "{59089B0C-AAB4-4532-B294-44DEAE7178B7}"