diff options
| author | Ray <[email protected]> | 2019-04-11 16:53:02 +0200 |
|---|---|---|
| committer | Ray <[email protected]> | 2019-04-11 16:53:02 +0200 |
| commit | 6fc97643bf564ec2f616ba3114230c78ed1c265e (patch) | |
| tree | de1c718c4d39fa92e1cf2d25c133c9ea37d6b08b /examples/textures | |
| parent | 01367fcb1e1c9e00a74cbbe146d415fd64110d30 (diff) | |
| download | raylib-6fc97643bf564ec2f616ba3114230c78ed1c265e.tar.gz raylib-6fc97643bf564ec2f616ba3114230c78ed1c265e.zip | |
new example: textures_background_scrolling
Diffstat (limited to 'examples/textures')
| -rw-r--r-- | examples/textures/resources/cyberpunk_street_background.png | bin | 0 -> 7800 bytes | |||
| -rw-r--r-- | examples/textures/resources/cyberpunk_street_foreground.png | bin | 0 -> 18100 bytes | |||
| -rw-r--r-- | examples/textures/resources/cyberpunk_street_midground.png | bin | 0 -> 7867 bytes | |||
| -rw-r--r-- | examples/textures/textures_background_scrolling.c | 87 | ||||
| -rw-r--r-- | examples/textures/textures_background_scrolling.png | bin | 0 -> 42935 bytes |
5 files changed, 87 insertions, 0 deletions
diff --git a/examples/textures/resources/cyberpunk_street_background.png b/examples/textures/resources/cyberpunk_street_background.png Binary files differnew file mode 100644 index 00000000..624a4b14 --- /dev/null +++ b/examples/textures/resources/cyberpunk_street_background.png diff --git a/examples/textures/resources/cyberpunk_street_foreground.png b/examples/textures/resources/cyberpunk_street_foreground.png Binary files differnew file mode 100644 index 00000000..fb622db6 --- /dev/null +++ b/examples/textures/resources/cyberpunk_street_foreground.png diff --git a/examples/textures/resources/cyberpunk_street_midground.png b/examples/textures/resources/cyberpunk_street_midground.png Binary files differnew file mode 100644 index 00000000..643a85e7 --- /dev/null +++ b/examples/textures/resources/cyberpunk_street_midground.png diff --git a/examples/textures/textures_background_scrolling.c b/examples/textures/textures_background_scrolling.c new file mode 100644 index 00000000..2be0810a --- /dev/null +++ b/examples/textures/textures_background_scrolling.c @@ -0,0 +1,87 @@ +/******************************************************************************************* +* +* raylib [textures] example - Background scrolling +* +* This example has been created using raylib 2.0 (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" + +int main() +{ + // Initialization + //-------------------------------------------------------------------------------------- + int screenWidth = 800; + int screenHeight = 450; + + InitWindow(screenWidth, screenHeight, "raylib [textures] example - background scrolling"); + + // NOTE: Be careful, background width must be equal or bigger than screen width + // if not, texture should be draw more than two times for scrolling effect + Texture2D background = LoadTexture("resources/cyberpunk_street_background.png"); + Texture2D midground = LoadTexture("resources/cyberpunk_street_midground.png"); + Texture2D foreground = LoadTexture("resources/cyberpunk_street_foreground.png"); + + float scrollingBack = 0; + float scrollingMid = 0; + float scrollingFore = 0; + + SetTargetFPS(60); + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + scrollingBack -= 0.1f; + scrollingMid -= 0.5f; + scrollingFore -= 1.0f; + + // NOTE: Texture is scaled twice its size, so it sould be considered on scrolling + if (scrollingBack <= -background.width*2) scrollingBack = 0; + if (scrollingMid <= -midground.width*2) scrollingMid = 0; + if (scrollingFore <= -foreground.width*2) scrollingFore = 0; + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(GetColor(0x052c46ff)); + + // Draw background image twice + // NOTE: Texture is scaled twice its size + DrawTextureEx(background, (Vector2){ scrollingBack, 20 }, 0.0f, 2.0f, WHITE); + DrawTextureEx(background, (Vector2){ background.width*2 + scrollingBack, 20 }, 0.0f, 2.0f, WHITE); + + // Draw midground image twice + DrawTextureEx(midground, (Vector2){ scrollingMid, 20 }, 0.0f, 2.0f, WHITE); + DrawTextureEx(midground, (Vector2){ midground.width*2 + scrollingMid, 20 }, 0.0f, 2.0f, WHITE); + + // Draw foreground image twice + DrawTextureEx(foreground, (Vector2){ scrollingFore, 70 }, 0.0f, 2.0f, WHITE); + DrawTextureEx(foreground, (Vector2){ foreground.width*2 + scrollingFore, 70 }, 0.0f, 2.0f, WHITE); + + DrawText("BACKGROUND SCROLLING & PARALLAX", 10, 10, 20, RED); + DrawText("(c) Cyberpunk Street Environment by Luis Zuno (@ansimuz)", screenWidth - 330, screenHeight - 20, 10, RAYWHITE); + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + UnloadTexture(background); // Unload background texture + UnloadTexture(midground); // Unload midground texture + UnloadTexture(foreground); // Unload foreground texture + + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +}
\ No newline at end of file diff --git a/examples/textures/textures_background_scrolling.png b/examples/textures/textures_background_scrolling.png Binary files differnew file mode 100644 index 00000000..d21e269d --- /dev/null +++ b/examples/textures/textures_background_scrolling.png |
