| Simple and Fast Multimedia Library | |
| | |
| Utvecklare | SFML Team, (urspr. Laurent Gomila m.fl.) |
|---|---|
| Först släppt | juli 2007 |
| Senaste utgåva | 2.2 (för 11 år sedan) |
| Skriven i | C++ |
| Utvecklingsstatus | Aktivt projekt |
| Operativsystem | Linux, OS X, Windows, FreeBSD |
| Plattform | Multiplattform |
| Typ | API |
| Licens | zlib License |
| Webbplats | sfml-dev.org |
SFML (Simple and Fast Multimedia Library) är ett portabelt och lättanvänt multimedia-API skrivet i C++, men bindningar finns till ett flertal populära programmeringsspråk. Det är känt som ett modernt, objektorienterat alternativ till SDL. SFML tillhandahåller moduler för att rendera hårdvaruaccelererad grafik med hjälp av OpenGL, samt ljud och nätverksmoduler som kan användas fristående från varandra för att skapa allt från kompletta spel till multimedia-applikationer.
SFML består av ett antal moduler som har flera klasser under sig, följande moduler finns:
Programmet nedanför ger en snabb överblick över SFML 2.x. Koden öppnar ett fönster innehållande en rektangel med ram som kan styras med piltangenterna:
#include <SFML/Graphics.hpp>
int main()
{
sf::RenderWindow window(sf::VideoMode(800, 600), "Hello world!");
sf::RectangleShape rectangle(sf::Vector2f(128, 128));
rectangle.setPosition(100, 100);
rectangle.setFillColor(sf::Color::Red);
rectangle.setOutlineColor(sf::Color::Blue);
rectangle.setOutlineThickness(2);
while (window.isOpen()) {
sf::Event event;
while (window.pollEvent(event)) {
switch (event.type) {
case sf::Event::Closed:
window.close();
break;
case sf::Event::KeyPressed:
switch (event.key.code) {
case sf::Keyboard::Escape:
window.close();
break;
}
}
}
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Up)) {
rectangle.move(0, -10);
}
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Down)) {
rectangle.move(0, 10);
}
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Left)) {
rectangle.move(-10, 0);
}
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Right)) {
rectangle.move(10, 0);
}
window.clear();
window.draw(rectangle);
window.display();
}
}
SFML kan användas via språkbindningar och stöds av ett flertal. Versionen i listan indikerar med vilken version språket fått stöd.