Egyszerű és gyors multimédiás könyvtár
Fejlesztette |
Laurent Gomila Marco Antognini (Mac OS X port) |
---|---|
Utolsó verzió | 2.5.1 (2018. október 15) |
Letét | github.com/SFML/SFML |
Beírva | C ++ |
Operációs rendszer | Többplatformos |
Környezet | Mac OS X , Windows , GNU / Linux |
Nyelvek | Többnyelvű |
típus | Szoftvertár |
Engedély | Zlib / png licenc |
Weboldal | www.sfml-dev.org |
SFML egy programozási felület az épület videojátékok vagy interaktív programokat. C ++ nyelven íródott , de különféle nyelveken is elérhető, például C , D , Python , Ruby , OCaml vagy Microsoft .NET . Célja többek között az SDL objektum-orientált alternatívájának biztosítása .
Különlegessége az is, hogy gyorsított 2D grafikát kínál az OpenGL használatával , amely lehetővé teszi a felhasználó számára, hogy felhagyjon az ál-3D kezelésével.
Számos modulból áll, használható minimális ablakos rendszerként az OpenGL-hez való kapcsolódáshoz, vagy funkciógazdag multimédiás könyvtárként videojátékok vagy interaktív programok készítéséhez.
Az SFML jelenleg öt külön speciális modullal rendelkezik. Ezek a különféle modulok külön-külön is használhatók (kivéve a grafikus modult, amely szintén függ az ablakos modultól), de mindegyik a rendszer moduljától függ.
A rendszermodul főként az időt (órát stb.) Kezeli. Ezenkívül kínál egy szálrendszert, amely lehetővé teszi az utasítások több sorozatának párhuzamos végrehajtását, például a teljesítmény javítása vagy a hatékony hálózatkezelés érdekében. A fejlesztők azonban a C ++ 11 szabvány óta javasolják a standard könyvtárban található std :: thread osztály használatát .
Az ablakos modul kezeli az ablakok létrehozását és azok jellemzőit (méret, teljes képernyős, antialiasing , vertikális szinkronizálás , framerate stb.). Az eseményrendszernek ( billentyűzet , egér , joystick stb.) Köszönhetően kezeli a felhasználóval való interakciókat is . Végül felhasználható az SFML interfészként való használatához az OpenGL-hez, ami önmagában nem elegendő egy teljes program létrehozásához, és többek között megköveteli a felhasználóval való interakció és interakció rendszerét.
A grafikus modul lehetővé teszi minden olyan objektum megrajzolását, amely látható lesz az ablakban ( téglalapok , lemezek , sokszögek , szövegek ... de a ponttáblázatoknak köszönhetően összetettebb alakzatok is), és textúrát alkalmazhatunk rá . Ezek az objektumok átalakíthatók ( fordítás , forgatás , homotetika ). Azt is kezeli a 2D kamera, és lehetővé teszi a végrehajtását shader írt GLSL .
Az audio modul lehetővé teszi hangok és zenék lejátszását WAV , OGG / Vorbis vagy FLAC formátumban (licenc okokból az MP3 formátum nem támogatott). Ezenkívül olyan egyszerű effekteket is kezel, mint a hangerő, a hangmagasság , a térbeosztás vagy a huroklejátszás .
A hálózati modul lehetővé teszi a hordozható használatát aljzatok , a TCP protokollt (csatlakoztatva) vagy UDP protokollt (nincs bekötve), és kínál egy csomagot a rendszer , hogy könnyen serialize adatokat. Ez lehetővé teszi azt is, hogy kommunikáljon egy HTTP szerverrel, és fájlokat továbbítson az FTP protokoll segítségével .
Az alábbiakban bemutatunk egy egyszerű programot az SFML 2.0 gyors áttekintéséhez. Ez a kód csak megnyit egy ablakot, és a háttérben megjelenő képen megjeleníti a "Hello World" szöveget.
#include <SFML/Graphics.hpp> int main() { // Crée la fenêtre principale avec comme titre "Hello World" sf::RenderWindow window(sf::VideoMode(800, 600), "Hello World"); // Charge un sprite à afficher sf::Texture texture; if (!texture.loadFromFile("background.jpg")) { return EXIT_FAILURE; } sf::Sprite sprite(texture); // Crée un texte sf::Font font; if (!font.loadFromFile("arial.ttf")) { return EXIT_FAILURE; } sf::Text text("Hello World", font, 18); // Boucle principale while (window.isOpen()) { // Gestion des événements sf::Event event; while (window.pollEvent(event)) { // Fermeture de la fenêtre if (event.type == sf::Event::Closed) { window.close(); } } window.clear(); // Efface l'écran window.draw(sprite); // Affiche le sprite window.draw(text); // Affiche le texte window.display(); // Met à jour la fenêtre } return EXIT_SUCCESS; }A feltüntetett szám adja meg azt a verziót, amelyen a könyvtár elérhető.