summaryrefslogtreecommitdiffhomepage
path: root/examples/src/textures/textures_particles_blending.c
diff options
context:
space:
mode:
Diffstat (limited to 'examples/src/textures/textures_particles_blending.c')
-rw-r--r--examples/src/textures/textures_particles_blending.c40
1 files changed, 20 insertions, 20 deletions
diff --git a/examples/src/textures/textures_particles_blending.c b/examples/src/textures/textures_particles_blending.c
index 3b7dcaa..75287ea 100644
--- a/examples/src/textures/textures_particles_blending.c
+++ b/examples/src/textures/textures_particles_blending.c
@@ -23,18 +23,18 @@ typedef struct {
bool active; // NOTE: Use it to activate/deactive particle
} Particle;
-int main()
+int main(void)
{
// Initialization
//--------------------------------------------------------------------------------------
- int screenWidth = 800;
- int screenHeight = 450;
+ const int screenWidth = 800;
+ const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [textures] example - particles blending");
-
+
// Particles pool, reuse them!
- Particle mouseTail[MAX_PARTICLES];
-
+ Particle mouseTail[MAX_PARTICLES];
+
// Initialize particles
for (int i = 0; i < MAX_PARTICLES; i++)
{
@@ -45,13 +45,13 @@ int main()
mouseTail[i].rotation = (float)GetRandomValue(0, 360);
mouseTail[i].active = false;
}
-
+
float gravity = 3.0f;
Texture2D smoke = LoadTexture("resources/smoke.png");
-
+
int blending = BLEND_ALPHA;
-
+
SetTargetFPS(60);
//--------------------------------------------------------------------------------------
@@ -60,7 +60,7 @@ int main()
{
// 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)
@@ -82,13 +82,13 @@ int main()
{
mouseTail[i].position.y += gravity;
mouseTail[i].alpha -= 0.01f;
-
+
if (mouseTail[i].alpha <= 0.0f) mouseTail[i].active = false;
-
+
mouseTail[i].rotation += 5.0f;
}
}
-
+
if (IsKeyPressed(KEY_SPACE))
{
if (blending == BLEND_ALPHA) blending = BLEND_ADDITIVE;
@@ -101,25 +101,25 @@ int main()
BeginDrawing();
ClearBackground(DARKGRAY);
-
+
BeginBlendMode(blending);
// Draw active particles
for (int i = 0; i < MAX_PARTICLES; i++)
{
- if (mouseTail[i].active) DrawTexturePro(smoke, (Rectangle){ 0.0f, 0.0f, (float)smoke.width, (float)smoke.height },
+ if (mouseTail[i].active) DrawTexturePro(smoke, (Rectangle){ 0.0f, 0.0f, (float)smoke.width, (float)smoke.height },
(Rectangle){ mouseTail[i].position.x, mouseTail[i].position.y, smoke.width*mouseTail[i].size, smoke.height*mouseTail[i].size },
(Vector2){ (float)(smoke.width*mouseTail[i].size/2.0f), (float)(smoke.height*mouseTail[i].size/2.0f) }, mouseTail[i].rotation,
Fade(mouseTail[i].color, mouseTail[i].alpha));
}
-
+
EndBlendMode();
-
+
DrawText("PRESS SPACE to CHANGE BLENDING MODE", 180, 20, 20, BLACK);
-
+
if (blending == BLEND_ALPHA) DrawText("ALPHA BLENDING", 290, screenHeight - 40, 20, BLACK);
else DrawText("ADDITIVE BLENDING", 280, screenHeight - 40, 20, RAYWHITE);
-
+
EndDrawing();
//----------------------------------------------------------------------------------
}
@@ -127,7 +127,7 @@ int main()
// De-Initialization
//--------------------------------------------------------------------------------------
UnloadTexture(smoke);
-
+
CloseWindow(); // Close window and OpenGL context
//--------------------------------------------------------------------------------------