| @ -0,0 +1,74 @@ | |||
| /******************************************************************************************* | |||
| * | |||
| * raylib [core] example - Windows drop files | |||
| * | |||
| * This example has been created using raylib 1.3 (www.raylib.com) | |||
| * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) | |||
| * | |||
| * Copyright (c) 2014 Ramon Santamaria (Ray San - raysan@raysanweb.com) | |||
| * | |||
| ********************************************************************************************/ | |||
| #include "raylib.h" | |||
| int main() | |||
| { | |||
| // Initialization | |||
| //-------------------------------------------------------------------------------------- | |||
| int screenWidth = 800; | |||
| int screenHeight = 450; | |||
| InitWindow(screenWidth, screenHeight, "raylib [core] example - drop files"); | |||
| int count = 0; | |||
| char **droppedFiles; | |||
| SetTargetFPS(60); | |||
| //-------------------------------------------------------------------------------------- | |||
| // Main game loop | |||
| while (!WindowShouldClose()) // Detect window close button or ESC key | |||
| { | |||
| // Update | |||
| //---------------------------------------------------------------------------------- | |||
| if (IsFileDropped()) | |||
| { | |||
| droppedFiles = GetDroppedFiles(&count); | |||
| } | |||
| //---------------------------------------------------------------------------------- | |||
| // Draw | |||
| //---------------------------------------------------------------------------------- | |||
| BeginDrawing(); | |||
| ClearBackground(RAYWHITE); | |||
| if (count == 0) DrawText("Drop your files to this window!", 100, 40, 20, DARKGRAY); | |||
| else | |||
| { | |||
| DrawText("Dropped files:", 100, 40, 20, DARKGRAY); | |||
| for (int i = 0; i < count; i++) | |||
| { | |||
| if (i%2 == 0) DrawRectangle(0, 85 + 40*i, screenWidth, 40, Fade(LIGHTGRAY, 0.5f)); | |||
| else DrawRectangle(0, 85 + 40*i, screenWidth, 40, Fade(LIGHTGRAY, 0.3f)); | |||
| DrawText(droppedFiles[i], 120, 100 + 40*i, 10, GRAY); | |||
| } | |||
| DrawText("Drop new files...", 100, 110 + 40*count, 20, DARKGRAY); | |||
| } | |||
| EndDrawing(); | |||
| //---------------------------------------------------------------------------------- | |||
| } | |||
| // De-Initialization | |||
| //-------------------------------------------------------------------------------------- | |||
| ClearDroppedFiles(); // Clear internal buffers | |||
| CloseWindow(); // Close window and OpenGL context | |||
| //-------------------------------------------------------------------------------------- | |||
| return 0; | |||
| } | |||
| @ -0,0 +1,132 @@ | |||
| /******************************************************************************************* | |||
| * | |||
| * raylib example - particles trail blending | |||
| * | |||
| * This example has been created using raylib 1.3 (www.raylib.com) | |||
| * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) | |||
| * | |||
| * Copyright (c) 2015 Ramon Santamaria (@raysan5) | |||
| * | |||
| ********************************************************************************************/ | |||
| #include "raylib.h" | |||
| #define MAX_PARTICLES 200 | |||
| typedef struct { | |||
| Vector2 position; | |||
| Color color; | |||
| float alpha; | |||
| float size; | |||
| float rotation; | |||
| bool active; // NOTE: Use it to activate/deactive particle | |||
| } Particle; | |||
| int main() | |||
| { | |||
| // Initialization | |||
| //-------------------------------------------------------------------------------------- | |||
| int screenWidth = 800; | |||
| int screenHeight = 450; | |||
| InitWindow(screenWidth, screenHeight, "raylib [textures] example - particles trail blending"); | |||
| // Particles pool, reuse them! | |||
| Particle mouseTail[MAX_PARTICLES]; | |||
| // Initialize particles | |||
| for (int i = 0; i < MAX_PARTICLES; i++) | |||
| { | |||
| mouseTail[i].position = (Vector2){ 0, 0 }; | |||
| mouseTail[i].color = (Color){ GetRandomValue(0, 255), GetRandomValue(0, 255), GetRandomValue(0, 255), 255 }; | |||
| mouseTail[i].alpha = 1.0f; | |||
| mouseTail[i].size = (float)GetRandomValue(1, 30)/20; | |||
| mouseTail[i].rotation = GetRandomValue(0, 360); | |||
| mouseTail[i].active = false; | |||
| } | |||
| float gravity = 3; | |||
| Texture2D smoke = LoadTexture("resources/smoke.png"); | |||
| int blending = BLEND_ALPHA; | |||
| SetTargetFPS(60); | |||
| //-------------------------------------------------------------------------------------- | |||
| // Main game loop | |||
| while (!WindowShouldClose()) // Detect window close button or ESC key | |||
| { | |||
| // Update | |||
| //---------------------------------------------------------------------------------- | |||
| // Activate one particle every frame and Update active particles | |||
| // NOTE: Particles initial position should be mouse position when activated | |||
| // NOTE: Particles fall down with gravity and rotation... and disappear after 2 seconds (alpha = 0) | |||
| // NOTE: When a particle disappears, active = false and it can be reused. | |||
| for (int i = 0; i < MAX_PARTICLES; i++) | |||
| { | |||
| if (!mouseTail[i].active) | |||
| { | |||
| mouseTail[i].active = true; | |||
| mouseTail[i].alpha = 1.0f; | |||
| mouseTail[i].position = GetMousePosition(); | |||
| i = MAX_PARTICLES; | |||
| } | |||
| } | |||
| for (int i = 0; i < MAX_PARTICLES; i++) | |||
| { | |||
| if (mouseTail[i].active) | |||
| { | |||
| mouseTail[i].position.y += gravity; | |||
| mouseTail[i].alpha -= 0.01f; | |||
| if (mouseTail[i].alpha <= 0.0f) mouseTail[i].active = false; | |||
| mouseTail[i].rotation += 5; | |||
| } | |||
| } | |||
| if (IsKeyPressed(KEY_SPACE)) | |||
| { | |||
| if (blending == BLEND_ALPHA) blending = BLEND_ADDITIVE; | |||
| else blending = BLEND_ALPHA; | |||
| } | |||
| //---------------------------------------------------------------------------------- | |||
| // Draw | |||
| //---------------------------------------------------------------------------------- | |||
| BeginDrawing(); | |||
| ClearBackground(DARKGRAY); | |||
| SetBlendMode(blending); | |||
| // Draw active particles | |||
| for (int i = 0; i < MAX_PARTICLES; i++) | |||
| { | |||
| if (mouseTail[i].active) DrawTexturePro(smoke, (Rectangle){ 0, 0, smoke.width, smoke.height }, | |||
| (Rectangle){ mouseTail[i].position.x, mouseTail[i].position.y, smoke.width*mouseTail[i].size, smoke.height*mouseTail[i].size }, | |||
| (Vector2){ smoke.width*mouseTail[i].size/2, smoke.height*mouseTail[i].size/2 }, mouseTail[i].rotation, | |||
| Fade(mouseTail[i].color, mouseTail[i].alpha)); | |||
| } | |||
| DrawText("PRESS SPACE to CHANGE BLENDING MODE", 180, 20, 20, RAYWHITE); | |||
| if (blending == BLEND_ALPHA) DrawText("ALPHA BLENDING", 290, screenHeight - 40, 20, RAYWHITE); | |||
| else DrawText("ADDITIVE BLENDING", 280, screenHeight - 40, 20, RAYWHITE); | |||
| EndDrawing(); | |||
| //---------------------------------------------------------------------------------- | |||
| } | |||
| // De-Initialization | |||
| //-------------------------------------------------------------------------------------- | |||
| UnloadTexture(smoke); | |||
| CloseWindow(); // Close window and OpenGL context | |||
| //-------------------------------------------------------------------------------------- | |||
| return 0; | |||
| } | |||
| @ -0,0 +1,68 @@ | |||
| /******************************************************************************************* | |||
| * | |||
| * raylib [textures] example - Retrieve image data from texture: GetTextureData() | |||
| * | |||
| * NOTE: Images are loaded in CPU memory (RAM); textures are loaded in GPU memory (VRAM) | |||
| * | |||
| * This example has been created using raylib 1.1 (www.raylib.com) | |||
| * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) | |||
| * | |||
| * Copyright (c) 2014 Ramon Santamaria (Ray San - raysan@raysanweb.com) | |||
| * | |||
| ********************************************************************************************/ | |||
| #include "raylib.h" | |||
| int main() | |||
| { | |||
| // Initialization | |||
| //-------------------------------------------------------------------------------------- | |||
| int screenWidth = 800; | |||
| int screenHeight = 450; | |||
| InitWindow(screenWidth, screenHeight, "raylib [textures] example - texture to image"); | |||
| // NOTE: Textures MUST be loaded after Window initialization (OpenGL context is required) | |||
| Image image = LoadImage("resources/raylib_logo.png"); // Load image data into CPU memory (RAM) | |||
| Texture2D texture = LoadTextureFromImage(image); // Image converted to texture, GPU memory (RAM -> VRAM) | |||
| UnloadImage(image); // Unload image data from CPU memory (RAM) | |||
| image = GetTextureData(texture); // Retrieve image data from GPU memory (VRAM -> RAM) | |||
| UnloadTexture(texture); // Unload texture from GPU memory (VRAM) | |||
| texture = LoadTextureFromImage(image); // Recreate texture from retrieved image data (RAM -> VRAM) | |||
| UnloadImage(image); // Unload retrieved image data from CPU memory (RAM) | |||
| //--------------------------------------------------------------------------------------- | |||
| // Main game loop | |||
| while (!WindowShouldClose()) // Detect window close button or ESC key | |||
| { | |||
| // Update | |||
| //---------------------------------------------------------------------------------- | |||
| // TODO: Update your variables here | |||
| //---------------------------------------------------------------------------------- | |||
| // Draw | |||
| //---------------------------------------------------------------------------------- | |||
| BeginDrawing(); | |||
| ClearBackground(RAYWHITE); | |||
| DrawTexture(texture, screenWidth/2 - texture.width/2, screenHeight/2 - texture.height/2, WHITE); | |||
| DrawText("this IS a texture loaded from an image!", 300, 370, 10, GRAY); | |||
| EndDrawing(); | |||
| //---------------------------------------------------------------------------------- | |||
| } | |||
| // De-Initialization | |||
| //-------------------------------------------------------------------------------------- | |||
| UnloadTexture(texture); // Texture unloading | |||
| CloseWindow(); // Close window and OpenGL context | |||
| //-------------------------------------------------------------------------------------- | |||
| return 0; | |||
| } | |||