diff options
Diffstat (limited to 'examples/web/shapes/shapes_collision_area.c')
| -rw-r--r-- | examples/web/shapes/shapes_collision_area.c | 48 |
1 files changed, 24 insertions, 24 deletions
diff --git a/examples/web/shapes/shapes_collision_area.c b/examples/web/shapes/shapes_collision_area.c index e2cc80f..f2386d7 100644 --- a/examples/web/shapes/shapes_collision_area.c +++ b/examples/web/shapes/shapes_collision_area.c @@ -25,14 +25,14 @@ const int screenHeight = 450; Rectangle boxA = { 0 }; Rectangle boxB = { 0 }; - + int boxASpeedX = 4; Rectangle boxCollision = { 0 }; // Collision rectangle int screenUpperLimit = 40; // Top menu limits -bool pause = false; // Movement pause +static bool pause = false; // Movement pause bool collision = false; // Collision detection //---------------------------------------------------------------------------------- @@ -41,26 +41,26 @@ bool collision = false; // Collision detection void UpdateDrawFrame(void); // Update and Draw one frame //---------------------------------------------------------------------------------- -// Main Enry Point +// Program Main Entry Point //---------------------------------------------------------------------------------- -int main() +int main(void) { // Initialization //--------------------------------------------------------- InitWindow(screenWidth, screenHeight, "raylib [shapes] example - collision area"); - + // Box A: Moving box boxA = (Rectangle){ 10, GetScreenHeight()/2 - 50, 200, 100 }; - + // Box B: Mouse moved box boxB = (Rectangle){ GetScreenWidth()/2 - 30, GetScreenHeight()/2 - 30, 60, 60 }; - + #if defined(PLATFORM_WEB) emscripten_set_main_loop(UpdateDrawFrame, 0, 1); #else SetTargetFPS(60); // Set our game to run at 60 frames-per-second //-------------------------------------------------------------------------------------- - + // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { @@ -72,7 +72,7 @@ int main() //--------------------------------------------------------- CloseWindow(); // Close window and OpenGL context //---------------------------------------------------------- - + return 0; } @@ -85,56 +85,56 @@ void UpdateDrawFrame(void) //----------------------------------------------------- // Move box if not paused if (!pause) boxA.x += boxASpeedX; - + // Bounce box on x screen limits if (((boxA.x + boxA.width) >= GetScreenWidth()) || (boxA.x <= 0)) boxASpeedX *= -1; - + // Update player-controlled-box (box02) boxB.x = GetMouseX() - boxB.width/2; boxB.y = GetMouseY() - boxB.height/2; - + // Make sure Box B does not go out of move area limits if ((boxB.x + boxB.width) >= GetScreenWidth()) boxB.x = GetScreenWidth() - boxB.width; else if (boxB.x <= 0) boxB.x = 0; - + if ((boxB.y + boxB.height) >= GetScreenHeight()) boxB.y = GetScreenHeight() - boxB.height; else if (boxB.y <= screenUpperLimit) boxB.y = screenUpperLimit; - + // Check boxes collision collision = CheckCollisionRecs(boxA, boxB); - + // Get collision rectangle (only on collision) if (collision) boxCollision = GetCollisionRec(boxA, boxB); - + // Pause Box A movement if (IsKeyPressed(KEY_SPACE)) pause = !pause; //----------------------------------------------------- - + // Draw //----------------------------------------------------- BeginDrawing(); - + ClearBackground(RAYWHITE); - + DrawRectangle(0, 0, screenWidth, screenUpperLimit, collision? RED : BLACK); DrawRectangleRec(boxA, GOLD); DrawRectangleRec(boxB, BLUE); - + if (collision) { // Draw collision area DrawRectangleRec(boxCollision, LIME); - + // Draw collision message DrawText("COLLISION!", GetScreenWidth()/2 - MeasureText("COLLISION!", 20)/2, screenUpperLimit/2 - 10, 20, BLACK); - + // Draw collision area DrawText(FormatText("Collision Area: %i", (int)boxCollision.width*(int)boxCollision.height), GetScreenWidth()/2 - 100, screenUpperLimit + 10, 20, BLACK); - } + } DrawFPS(10, 10); - + EndDrawing(); //----------------------------------------------------- } |
