Add new example to text example
Add new example of text animation into Raylib
This commit is contained in:
parent
b273ba930b
commit
905b622dc3
56
examples/text/text_levitating_animation.c
Normal file
56
examples/text/text_levitating_animation.c
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
#include <raylib.h>
|
||||
#include <math.h>
|
||||
|
||||
int main() {
|
||||
// Configuration
|
||||
const int screenWidth = 800;
|
||||
const int screenHeight = 450;
|
||||
const char* text = "Raylib in Space!";
|
||||
const int fontSize = 40;
|
||||
const Color textColor = WHITE;
|
||||
|
||||
// Initialisation de Raylib
|
||||
InitWindow(screenWidth, screenHeight, "Levitating Text");
|
||||
SetTargetFPS(60);
|
||||
|
||||
// Position initiale du texte (au centre de l'écran)
|
||||
Vector2 textPosition = { (float)screenWidth / 2 - MeasureText(text, fontSize) / 2, (float)screenHeight / 2 };
|
||||
|
||||
// Variables pour l'animation
|
||||
float time = 0.0f; // Temps écoulé pour le mouvement sinusoïdal
|
||||
float amplitude = 30.0f; // Amplitude du mouvement vertical
|
||||
float frequency = 1.5f; // Fréquence du mouvement vertical
|
||||
|
||||
// Boucle principale du jeu
|
||||
while (!WindowShouldClose()) {
|
||||
// Mise à jour
|
||||
|
||||
time += GetFrameTime(); // Incrémente le temps écoulé
|
||||
|
||||
// Calcule la position verticale basée sur une fonction sinusoïdale
|
||||
textPosition.y = (float)screenHeight / 2 + sin(time * frequency) * amplitude;
|
||||
|
||||
// Dessin
|
||||
BeginDrawing();
|
||||
|
||||
ClearBackground(BLACK);
|
||||
|
||||
// Dessine le texte à la position mise à jour
|
||||
DrawText(text, (int)textPosition.x, (int)textPosition.y, fontSize, textColor);
|
||||
|
||||
// Optionnel: Ajoute des étoiles en arrière-plan
|
||||
for (int i = 0; i < 100; ++i) {
|
||||
Vector2 starPosition = {(float)GetRandomValue(0, screenWidth), (float)GetRandomValue(0, screenHeight)};
|
||||
float starSize = (float)GetRandomValue(1, 3);
|
||||
Color starColor = Fade(WHITE, (float)GetRandomValue(20, 80) / 100.0f); // Étoiles plus ou moins brillantes
|
||||
DrawPixelV(starPosition, starColor);
|
||||
}
|
||||
|
||||
EndDrawing();
|
||||
}
|
||||
|
||||
// Libération de la mémoire et fermeture de Raylib
|
||||
CloseWindow();
|
||||
|
||||
return 0;
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user