From 923f4b9bbd1af4bff0037807ec0f6e6514c043cd Mon Sep 17 00:00:00 2001 From: Codecat Date: Wed, 5 Jun 2019 10:35:20 +0200 Subject: [PATCH] Added waving cubes example --- examples/models/models_waving_cubes.c | 105 ++++++++++++++++++++++++ examples/models/models_waving_cubes.png | Bin 0 -> 37712 bytes 2 files changed, 105 insertions(+) create mode 100644 examples/models/models_waving_cubes.c create mode 100644 examples/models/models_waving_cubes.png diff --git a/examples/models/models_waving_cubes.c b/examples/models/models_waving_cubes.c new file mode 100644 index 000000000..0fefbcf24 --- /dev/null +++ b/examples/models/models_waving_cubes.c @@ -0,0 +1,105 @@ +/******************************************************************************************* +* +* raylib [models] example - Waving cubes +* +* This example has been created using raylib 2.5 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Copyright (c) 2019 Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "raylib.h" + +#include + +int main() +{ + // Initialization + //-------------------------------------------------------------------------------------- + const int screenWidth = 800; + const int screenHeight = 450; + + InitWindow(screenWidth, screenHeight, "raylib [models] example - waving cubes"); + + // Initialize the camera + Camera3D camera; + camera.position = (Vector3){ 30.0f, 20.0f, 30.0f }; + camera.target = (Vector3){ 0.0f, 0.0f, 0.0f }; + camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; + camera.fovy = 70.0f; + camera.type = CAMERA_PERSPECTIVE; + + // Specify the amount of blocks in each direction + const int numBlocks = 15; + + SetTargetFPS(60); + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + // Update + double time = GetTime(); + + // Calculate time scale for cube position and size + float scale = (2.0f + (float)sin(time)) * 0.7f; + + // Move camera around the scene + double cameraTime = time * 0.3; + camera.position.x = (float)cos(cameraTime) * 40.0f; + camera.position.z = (float)sin(cameraTime) * 40.0f; + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + BeginMode3D(camera); + + DrawGrid(10, 5.0f); + + for (int x = 0; x < numBlocks; x++) { + for (int y = 0; y < numBlocks; y++) { + for (int z = 0; z < numBlocks; z++) { + // Scale of the blocks depends on x/y/z positions + float blockScale = (x + y + z) / 30.0f; + + // Scatter makes the waving effect by adding blockScale over time + float scatter = sinf(blockScale * 20.0f + (float)(time * 4.0f)); + + // Calculate the cube position + Vector3 cubePos = { + (float)(x - numBlocks / 2) * (scale * 3.0f) + scatter, + (float)(y - numBlocks / 2) * (scale * 2.0f) + scatter, + (float)(z - numBlocks / 2) * (scale * 3.0f) + scatter + }; + + // Pick a color with a hue depending on cube position for the rainbow color effect + Color cubeColor = ColorFromHSV((Vector3){ (float)(((x + y + z) * 18) % 360), 0.75f, 0.9f }); + + // Calculate cube size + float cubeSize = (2.4f - scale) * blockScale; + + // And finally, draw the cube! + DrawCube(cubePos, cubeSize, cubeSize, cubeSize, cubeColor); + } + } + } + + DrawFPS(10, 10); + + EndMode3D(); + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} diff --git a/examples/models/models_waving_cubes.png b/examples/models/models_waving_cubes.png new file mode 100644 index 0000000000000000000000000000000000000000..37a1761ecd05d14fd9f9ce3e351d37027218ef67 GIT binary patch literal 37712 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 Nfv2mV%Q~loCIH1Wd~^T+ literal 0 HcmV?d00001