Enkelt och snabbt multimediabibliotek | |
---|---|
Sorts | API |
Utvecklaren | Laurent Gomila |
Skrivet i | C++ |
Operativ system | plattformsoberoende |
senaste versionen | 2.5.1 |
Licens | zlib-licens |
Hemsida | sfml-dev.org |
SFML ( Engelska Simple and Fast Multimedia Library - ett enkelt och snabbt multimediabibliotek) är ett gratis plattformsoberoende multimediabibliotek . Skrivet i C++ , men även tillgängligt för C , C# , .Net , D , Java , Python , Ruby , OCaml , Go och Rust . [1] Det är en objektorienterad analog av SDL . [2]
SFML innehåller ett antal moduler för enkel programmering av spel och multimediaapplikationer. Bibliotekets källkod tillhandahålls under zlib/png-licensen . [3]
Följande moduler är för närvarande tillgängliga:
Följande C++-kod visar den enklaste SFML-applikationen (visa ett fönster och fyll det med blått):
// Inkludera rubriken för grafikmodulen, så kommer den automatiskt att inkludera rubriken för Window-modulen #include <SFML/Graphics.hpp> int main () { // skapa fönster sf :: RenderWindow app ( sf :: VideoMode ( 800 , 600 , 32 ), "Hello World - SFML" ); // main while loop ( app . isOpen ()) { // leta efter händelser (knappklick, stäng fönster, etc.) sf :: Event event ; while ( app . pollEvent ( event )) { // om händelsen är "fönster stängs": if ( händelse . typ == sf :: Event :: Stängd ) // stäng appfönstret . stäng (); } // rensa skärmen och fyll den med blå app . klar ( sf :: Färg ( 0 , 0 , 255 )); // visa till skärmappen . visa (); } returnera 0 ; }Ett exempel på C-kod (visar ett fönster och fyller det med vitt):
#include <SFML/Graphics.hpp> int main () { sfVideoMode- läge = { 480 , 320 , 32 }; sfRenderWindow * fönster ; sfEvent händelse ; fönster = sfRenderWindow_create ( läge , "Hej världen!" , sfResize | sfClose , NULL ); while ( sfRenderWindow_isOpen ( fönster )) { while ( sfRenderWindow_pollEvent ( fönster , & händelse )) { if ( händelse . typ == sfEvtClosed ) sfRenderWindow_close ( fönster ); } sfRenderWindow_clear ( fönster , sfWhite ); sfRenderWindow_display ( fönster ); } sfRenderWindow_destroy ( fönster ); returnera 0 ; }