raylib/examples/text/text_raylib_fonts.c

103 lines
4.2 KiB
C
Raw Normal View History

2013-11-24 23:30:05 +04:00
/*******************************************************************************************
*
* raylib [text] example - raylib font loading and usage
*
* NOTE: raylib is distributed with some free to use fonts (even for commercial pourposes!)
* To view details and credits for those fonts, check raylib license file
2013-11-24 23:30:05 +04:00
*
* This example has been created using raylib 1.7 (www.raylib.com)
2013-11-24 23:30:05 +04:00
* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
*
* Copyright (c) 2017 Ramon Santamaria (@raysan5)
2013-11-24 23:30:05 +04:00
*
********************************************************************************************/
2013-12-27 03:17:39 +04:00
#include "raylib.h"
2013-11-24 23:30:05 +04:00
#define MAX_FONTS 8
2013-11-24 23:30:05 +04:00
int main()
{
// Initialization
//--------------------------------------------------------------------------------------
2015-08-27 17:13:31 +03:00
int screenWidth = 800;
int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [text] example - raylib fonts");
2014-09-30 01:41:05 +04:00
2013-11-24 23:30:05 +04:00
// NOTE: Textures MUST be loaded after Window initialization (OpenGL context is required)
SpriteFont fonts[MAX_FONTS];
2015-08-27 17:13:31 +03:00
fonts[0] = LoadSpriteFont("resources/fonts/alagard.png");
fonts[1] = LoadSpriteFont("resources/fonts/pixelplay.png");
fonts[2] = LoadSpriteFont("resources/fonts/mecha.png");
fonts[3] = LoadSpriteFont("resources/fonts/setback.png");
fonts[4] = LoadSpriteFont("resources/fonts/romulus.png");
fonts[5] = LoadSpriteFont("resources/fonts/pixantiqua.png");
fonts[6] = LoadSpriteFont("resources/fonts/alpha_beta.png");
fonts[7] = LoadSpriteFont("resources/fonts/jupiter_crash.png");
2015-08-27 17:13:31 +03:00
const char *messages[MAX_FONTS] = { "ALAGARD FONT designed by Hewett Tsoi",
2015-08-27 17:13:31 +03:00
"PIXELPLAY FONT designed by Aleksander Shevchuk",
"MECHA FONT designed by Captain Falcon",
"SETBACK FONT designed by Brian Kent (AEnigma)",
"ROMULUS FONT designed by Hewett Tsoi",
"PIXANTIQUA FONT designed by Gerhard Grossmann",
"ALPHA_BETA FONT designed by Brian Kent (AEnigma)",
"JUPITER_CRASH FONT designed by Brian Kent (AEnigma)" };
const int spacings[MAX_FONTS] = { 2, 4, 8, 4, 3, 4, 4, 1 };
2015-08-27 17:13:31 +03:00
Vector2 positions[MAX_FONTS];
2015-08-27 17:13:31 +03:00
for (int i = 0; i < MAX_FONTS; i++)
2015-08-27 17:13:31 +03:00
{
positions[i].x = screenWidth/2 - MeasureTextEx(fonts[i], messages[i], fonts[i].baseSize*2, spacings[i]).x/2;
positions[i].y = 60 + fonts[i].baseSize + 45*i;
2015-08-27 17:13:31 +03:00
}
// Small Y position corrections
positions[3].y += 8;
positions[4].y += 2;
positions[7].y -= 8;
Color colors[MAX_FONTS] = { MAROON, ORANGE, DARKGREEN, DARKBLUE, DARKPURPLE, LIME, GOLD, RED };
//--------------------------------------------------------------------------------------
2014-09-30 01:41:05 +04:00
2013-11-24 23:30:05 +04:00
// Main game loop
while (!WindowShouldClose()) // Detect window close button or ESC key
{
// Update
//----------------------------------------------------------------------------------
2013-11-24 23:30:05 +04:00
// TODO: Update your variables here
//----------------------------------------------------------------------------------
2014-09-30 01:41:05 +04:00
2013-11-24 23:30:05 +04:00
// Draw
//----------------------------------------------------------------------------------
2013-11-24 23:30:05 +04:00
BeginDrawing();
2014-09-30 01:41:05 +04:00
2013-11-24 23:30:05 +04:00
ClearBackground(RAYWHITE);
2015-08-27 17:13:31 +03:00
DrawText("free fonts included with raylib", 250, 20, 20, DARKGRAY);
DrawLine(220, 50, 590, 50, DARKGRAY);
for (int i = 0; i < MAX_FONTS; i++)
2015-08-27 17:13:31 +03:00
{
DrawTextEx(fonts[i], messages[i], positions[i], fonts[i].baseSize*2, spacings[i], colors[i]);
2015-08-27 17:13:31 +03:00
}
2014-09-30 01:41:05 +04:00
2013-11-24 23:30:05 +04:00
EndDrawing();
//----------------------------------------------------------------------------------
2013-11-24 23:30:05 +04:00
}
// De-Initialization
//--------------------------------------------------------------------------------------
2017-04-09 00:31:58 +03:00
// SpriteFonts unloading
for (int i = 0; i < MAX_FONTS; i++) UnloadSpriteFont(fonts[i]);
2014-09-30 01:41:05 +04:00
CloseWindow(); // Close window and OpenGL context
//--------------------------------------------------------------------------------------
2014-09-30 01:41:05 +04:00
2013-11-24 23:30:05 +04:00
return 0;
}