Yksinkertainen ja nopea multimediakirjasto | |
---|---|
Tyyppi | API |
Kehittäjä | Laurent Gomila |
Sisään kirjoitettu | C++ |
Käyttöjärjestelmä | cross-platform |
uusin versio | 2.5.1 |
Lisenssi | zlib-lisenssi |
Verkkosivusto | sfml-dev.org |
SFML ( englanninkielinen yksinkertainen ja nopea multimediakirjasto - yksinkertainen ja nopea multimediakirjasto) on ilmainen multimediakirjasto . Kirjoitettu kielellä C++ , mutta saatavilla myös C :lle , C# :lle , .Net :lle , D :lle , Javalle , Pythonille , Rubylle , OCamlille , Golle ja Rustille . [1] Se on SDL :n olio-analogi . [2]
SFML sisältää useita moduuleja pelien ja multimediasovellusten helppoa ohjelmointia varten. Kirjaston lähdekoodi toimitetaan zlib/png-lisenssillä . [3]
Seuraavat moduulit ovat tällä hetkellä saatavilla:
Seuraava C++-koodi esittelee yksinkertaisimman SFML-sovelluksen (näytä ikkuna ja täytä se sinisellä):
// Sisällytä Graphics-moduulin otsikko, ja se sisältää automaattisesti Window-moduulin otsikon #include <SFML/Graphics.hpp> int main () { // luo ikkuna sf :: RenderWindow app ( sf :: VideoMode ( 800 , 600 , 32 ), "Hello World - SFML" ); // Main while -silmukka ( app . isOpen ()) { // Tarkista tapahtumat (painikkeen napsautus, ikkunan sulkeminen jne.) sf :: Event event ; while ( app . pollEvent ( tapahtuma )) { // jos tapahtuma on "ikkunan sulkeminen": if ( tapahtuma . tyyppi == sf :: Tapahtuma :: Suljettu ) // sulje sovellusikkuna . sulje (); } // tyhjennä näyttö ja täytä se sinisellä sovelluksella . kirkas ( sf :: Väri ( 0 , 0 , 255 )); // näyttää näytön sovellukselle . näyttö (); } paluu 0 ; }Esimerkki C-koodista (ikkunan näyttäminen ja sen täyttäminen valkoisella):
#include <SFML/Graphics.hpp> int main () { sfVideoMode- tila = { 480 , 320 , 32 }; sfRenderWindow * ikkuna ; sfEvent -tapahtuma ; ikkuna = sfRenderWindow_create ( tila , "Hei, maailma!" , sfResize | sfClose , NULL ); while ( sfRenderWindow_isOpen ( ikkuna )) { while ( sfRenderWindow_pollEvent ( ikkuna , & tapahtuma )) { if ( tapahtuma . tyyppi == sfEvtClosed ) sfRenderWindow_close ( ikkuna ); } sfRenderWindow_clear ( ikkuna , sfWhite ); sfRenderWindow_display ( ikkuna ); } sfRenderWindow_destroy ( ikkuna ); paluu 0 ; }