From ada76157ff06f044013c3fba033609c5988ecf5c Mon Sep 17 00:00:00 2001 From: Alok Date: Fri, 24 Apr 2026 21:23:09 +0530 Subject: [PATCH] Add moving circle example demonstrating basic animation --- examples/shapes/shapes_moving_circle.c | 70 +++++++++++++++++++++++ examples/shapes/shapes_moving_circle.png | Bin 0 -> 14687 bytes 2 files changed, 70 insertions(+) create mode 100644 examples/shapes/shapes_moving_circle.c create mode 100644 examples/shapes/shapes_moving_circle.png diff --git a/examples/shapes/shapes_moving_circle.c b/examples/shapes/shapes_moving_circle.c new file mode 100644 index 000000000..6dc75f9d1 --- /dev/null +++ b/examples/shapes/shapes_moving_circle.c @@ -0,0 +1,70 @@ +/******************************************************************************************* +* +* raylib [shapes] example - moving circle +* +* Example complexity rating: [★☆☆☆] 1/4 +* +* This example demonstrates basic animation by moving a circle horizontally. +* +********************************************************************************************/ + +#include "raylib.h" + +//------------------------------------------------------------------------------------ +// Program main entry point +//------------------------------------------------------------------------------------ +int main(void) +{ + // Initialization + //-------------------------------------------------------------------------------------- + const int screenWidth = 800; + const int screenHeight = 450; + + InitWindow(screenWidth, screenHeight, "raylib [shapes] example - moving circle"); + + float x = 100.0f; + float speed = 200.0f; + + SetTargetFPS(60); + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) + { + // Update + //---------------------------------------------------------------------------------- + // Move circle based on frame time (smooth movement) + x += speed * GetFrameTime(); + + if (x > screenWidth - 50 || x < 50) speed *= -1; + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + // Title + DrawText("Moving Circle Example", 10, 10, 20, DARKGRAY); + + // Subtitle + DrawText("Circle moves horizontally using frame time", 10, 40, 10, GRAY); + + // FPS (separate, non-overlapping) + DrawFPS(10, 70); + + // Circle (main visual focus) + DrawCircle((int)x, screenHeight/2, 50, BLUE); + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + CloseWindow(); + //-------------------------------------------------------------------------------------- + + return 0; +} diff --git a/examples/shapes/shapes_moving_circle.png b/examples/shapes/shapes_moving_circle.png new file mode 100644 index 0000000000000000000000000000000000000000..f169bdb1568222bed9115d6366d3decdce081612 GIT binary patch literal 14687 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 Sau^sG7(8A5T-G@yGywn&4e3n) literal 0 HcmV?d00001