Enkelt og hurtigt multimediebibliotek | |
---|---|
Type | API |
Udvikler | Laurent Gomila |
Skrevet i | C++ |
Operativ system | på tværs af platforme |
nyeste version | 2.5.1 |
Licens | zlib-licens |
Internet side | sfml-dev.org |
SFML ( Engelsk Simple and Fast Multimedia Library - et enkelt og hurtigt multimediebibliotek) er et gratis multimediebibliotek på tværs af platforme . Skrevet i C++ , men også tilgængelig til C , C# , .Net , D , Java , Python , Ruby , OCaml , Go og Rust . [1] Det er en objektorienteret analog af SDL . [2]
SFML indeholder en række moduler til nem programmering af spil og multimedieapplikationer. Bibliotekets kildekode leveres under zlib/png-licensen . [3]
Følgende moduler er i øjeblikket tilgængelige:
Følgende C++-kode demonstrerer den enkleste SFML-applikation (vis et vindue og fyld det med blåt):
// Inkluder overskriften på grafikmodulet, og den vil automatisk inkludere overskriften på vinduesmodulet #include <SFML/Graphics.hpp> int main () { // create window sf :: RenderWindow app ( sf :: VideoMode ( 800 , 600 , 32 ), "Hello World - SFML" ); // main while loop ( app . isOpen ()) { // tjek for hændelser (klik på knappen, luk vinduet osv.) sf :: Event hændelse ; mens ( app . pollEvent ( begivenhed )) { // hvis begivenheden er "vindue lukker": if ( begivenhed . type == sf :: Event :: Lukket ) // luk app- vinduet . lukke (); } // Ryd skærmen og fyld den med blå app . klar ( sf :: Farve ( 0 , 0 , 255 )); // vise til skærmen app . display (); } returnere 0 ; }Et eksempel på C-kode (viser et vindue og fylder det med hvidt):
#include <SFML/Graphics.hpp> int main () { sfVideoMode mode = { 480 , 320 , 32 }; sfRenderWindow * vindue ; sfEvent begivenhed ; window = sfRenderWindow_create ( mode , "Hej, verden!" , sfResize | sfClose , NULL ); while ( sfRenderWindow_isOpen ( vindue )) { while ( sfRenderWindow_pollEvent ( vindue , & begivenhed )) { if ( hændelse . type == sfEvtClosed ) sfRenderWindow_close ( vindue ); } sfRenderWindow_clear ( vindue , sfWhite ); sfRenderWindow_display ( vindue ); } sfRenderWindow_destroy ( vindue ); returnere 0 ; }