muszaki_informatika:raylib
This is an old revision of the document!
Table of Contents
Raylib: A C nyelvű játékfejlesztési könyvtár
A raylib egy egyszerű és könnyen használható C nyelvű könyvtár, amit játékfejlesztéshez és multimédiás alkalmazásokhoz készítettek.
Fő jellemzői
- Platformfüggetlen: Windows, Linux, MacOS és több más rendszeren is működik.
- Könnyű Integrálni: Nincs szükség külső függőségekre vagy bonyolult telepítési folyamatokra.
- 2D és 3D támogatás: Támogatja mind a 2D, mind a 3D grafikai és audio funkcionalitást.
Alapvető funkciók
- Ablakkezelés: Könnyű létrehozni és kezelni az ablakokat, valamint kezelni az eseményeket.
- Grafika: Támogatja a 2D-s és 3D-s rajzolást, textúrák és sprite-ok kezelését.
- Hangkezelés: Képes audio fájlok lejátszására és hang effektek kezelésére.
- Bemenet kezelése: Egér, billentyűzet és más bemeneti eszközök támogatása.
Források
- Hivatalos Weboldal: raylib.com
- Dokumentáció: Teljes körű API dokumentáció elérhető a hivatalos weboldalon.
- Példák és Tutorialok: Sok példa és oktatóanyag található az oldalon
Telepítés és konfiguráció
- Van saját telepítője is, de egyszerűbb ha letöltjük az include és lib fájlokat tartalmazó raylib.zip-et.
- Hozzunk létre egy konzol alkalmazást a codeblocks-ban
- A létrejött main.c fájl könyvtárába tömörítsük ki a letöltött zip-et
Írjuk felül a jelenlegi main.c tartalmát az alábbi kóddal és futtassuk a programot.
#include <raylib.h> int main() { // Window creation const int screenWidth = 640; const int screenHeight = 480; InitWindow(screenWidth, screenHeight, "raylib example"); // Initialization SetTargetFPS(60); // Set our game to run at 60 frames-per-second // Main game loop while (!WindowShouldClose()) { // Detect window close button or ESC key // Update // Draw BeginDrawing(); ClearBackground(LIGHTGRAY); // Clear the background with a color int MaxX = GetScreenWidth(); int MaxY = GetScreenHeight(); for (int i = 1; i <= 10; i++) { Color lineColor = GetColor(i + 5); // Choose color DrawLine(0, 0, (MaxX / 10) * i, MaxY, lineColor); // Draw line int R = (MaxY - 10) / (2 * i); // Circle radius DrawCircle(MaxX - R, MaxY / 2, R, lineColor); // Draw circle // Draw ellipse DrawEllipse(MaxX / 2, MaxY / 8, MaxX / (4 * i), MaxY / 8, lineColor); } EndDrawing(); } // De-Initialization CloseWindow(); // Close window and OpenGL context return 0; }
#include <raylib.h> #include <math.h> int main() { // Initialization const int screenWidth = 800; const int screenHeight = 450; InitWindow(screenWidth, screenHeight, "Sinus Function Plot - raylib"); SetTargetFPS(60); // Set FPS while (!WindowShouldClose()) { // Main game loop // Update // Draw BeginDrawing(); ClearBackground(RAYWHITE); // Clear the background // Draw the axes Vector2 origin = { (float)screenWidth/2, (float)screenHeight/2 }; DrawLine(origin.x, 0, origin.x, screenHeight, BLACK); // Y-axis DrawLine(0, origin.y, screenWidth, origin.y, BLACK); // X-axis // Draw the sine function for(int i = -screenWidth/2; i < screenWidth/2; i++) { // Calculating points float x1 = (float)i; float y1 = sinf(x1 * DEG2RAD) * 100; // Scale the sine wave float x2 = x1 + 1; float y2 = sinf(x2 * DEG2RAD) * 100; // Scale the sine wave // Transform points to screen space x1 += origin.x; y1 = origin.y - y1; // Invert y1 to match screen coordinates x2 += origin.x; y2 = origin.y - y2; // Invert y2 to match screen coordinates // Draw line segment DrawLine(x1, y1, x2, y2, BLUE); } DrawText("Sinus Function Plot", 10, 10, 20, BLACK); // Title DrawText("X-Axis", screenWidth - 50, origin.y + 10, 10, BLACK); // X-axis label DrawText("Y-Axis", origin.x + 10, 10, 10, BLACK); // Y-axis label EndDrawing(); } CloseWindow(); return 0; }
muszaki_informatika/raylib.1706461198.txt.gz · Last modified: 2024/01/28 16:59 by knehez