SFML

Från Wikipedia
Hoppa till: navigering, sök
Simple and Fast Multimedia Library
SFML2.svg
Utvecklare Laurent Gomila
Senaste utgåva 2.0
(för 16 månader sedan)
Senaste betautgåva 2.0rc
(för 2 år sedan)
Skriven i C++
Utvecklingsstatus Aktivt projekt
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.

Moduler[redigera | redigera wikitext]

SFML består av ett antal moduler som har flertalet klasser under sig, följande moduler finns just nu[1][2]:

  • Audio module, tillhandahåller ett gränssnitt för att hantera ljud och musik.
  • Graphics module , gör det enkelt att rendera enkel geometri och bilder.
  • Network module, bland annat klasser för att använda HTTP-och FTP-Internet-protokoll
  • System module , hanterar klocka och trådar.
  • Window module , hanterar fönster och användarinteraktioner.

Exempel[redigera | redigera wikitext]

Programmet nedanför ger en snabb överblick över SFML 2.0. Koden öppnar ett fönster och fyller den med en rektangel med ram som kan styras med piltangenterna:

#include <SFML/Graphics.hpp>
 
using namespace sf;
 
int main()
{
  VideoMode videoMode(800,600);
  RenderWindow window(videoMode,"Hello world!");
 
  RectangleShape rectangle;
  rectangle.setPosition(100, 100);
  rectangle.setSize(Vector2f(600, 400));
 
  rectangle.setFillColor(Color::Red);
  rectangle.setOutlineColor(Color::Blue);
  rectangle.setOutlineThickness(2);
 
  while (window.isOpen())
    {
      window.clear();
      window.draw(rectangle);
      window.display();
 
      Event event;
      while (window.pollEvent(event))
        {
          if ( (event.type == Event::Closed) ||
               ((event.type == Event::KeyPressed) && (event.key.code==Keyboard::Escape)) )
            window.close();
          else
            {
              if (event.type == Event::KeyPressed)
                {
                  switch(event.key.code)
                    {
                    case Keyboard::Up: rectangle.move(0,-10);
                      break;
                    case Keyboard::Down: rectangle.move(0,10);
                      break;
                    case Keyboard::Left: rectangle.move(-10,0);
                      break;
                    case Keyboard::Right: rectangle.move(10,0);
                      break;
                    }
 
                }
            }
 
        }
    }
  return EXIT_SUCCESS;
}


Språkstöd[redigera | redigera wikitext]

SFML kan användas via språkbindingar och stöds idag av ett flertal. Versionen i listan indikerar med vilken version språket fått stöd.[2]

Officiella språkbindningar[redigera | redigera wikitext]

Externa bindningar[redigera | redigera wikitext]

Se även[redigera | redigera wikitext]

Versionshistorik[redigera | redigera wikitext]

  • 1.0 (juli 2007)
    • 1.1 (18 september 2007)
    • 1.2 (16 januari 2008)
    • 1.3 (22 juni 2008)
    • 1.4 (7 januari 2009)
    • 1.5 (4 juni 2009)
    • 1.6 (6 april 2010) : Mest en bugg-fix version, utvecklingsteamet arbetar mot version 2.0 som släpptes som release-kandidat den 15 april 2012.
  • 2.0 (29 april 2013)

Referenser[redigera | redigera wikitext]

  1. ^ SFML 2.0 moduler
  2. ^ [a b] SFML Features
  3. ^ OCaml bindings for SFML
  4. ^ JSFML - Simple and Fast Multimedia Library for Java

Externa länkar[redigera | redigera wikitext]