sfmlAan de slag met sfml


Opmerkingen

SFML is multimedia

SFML biedt een eenvoudige interface voor de verschillende componenten van uw pc om de ontwikkeling van games en multimediatoepassingen te vergemakkelijken. Het bestaat uit vijf modules: systeem, venster, afbeeldingen, audio en netwerk.

Ontdek hun functies meer in detail in de tutorials en de API-documentatie .

SFML is multi-platform

Met SFML kan uw toepassing worden gecompileerd en out-of-the-box op de meest gangbare besturingssystemen: Windows, Linux, Mac OS X en binnenkort Android & iOS.

Vooraf gecompileerde SDK's voor uw favoriete besturingssysteem zijn beschikbaar op de downloadpagina .

SFML is meertalig

SFML heeft officiële bindingen voor de talen C en .Net. En dankzij de actieve community is het ook beschikbaar in vele andere talen, zoals Java, Ruby, Python, Go en meer.

Lees meer over hen op de bindingspagina .

versies

Versie Publicatiedatum
1.0 2007-07-01
1.1 2007-09-18
1.2 2008-07-16
1.3 2008-06-22
1.4 2009-01-07
1.5 2009-06-04
1.6 2010-04-06
2.0 2013/04/29
2.1 2013/07/27
2.2 2014/12/17
2.3 2015/05/09
2.3.1 2015/07/11
2.3.2 2015/10/12
2.4.0 2016/08/10
2.4.1 2016/11/04
2.4.2 2017/02/08

Installatie of instellingen

  • Bewaar het overal op uw computer waar het gemakkelijk toegankelijk is.
  • Open Codeblocks.
  • Ga naar Project-> Build-opties-> tabblad Linkerinstellingen.
  • Klik op de knop Toevoegen en ga naar de map bin van SFML en selecteer alle bestanden die daar aanwezig zijn.
  • Ga nu naar het tabblad Zoekmappen en voeg de map 'include' van SFML toe.
  • Klik op hetzelfde tabblad op het subtabblad Linker-instellingen en voeg de map 'bin' toe.

Basis SFML-programma

Als alles correct is ingesteld, toont het volgende fragment een venster met de titel "SFML werkt!" met een groene cirkel:

#include <SFML/Graphics.hpp>

int main()
{
    sf::RenderWindow window(sf::VideoMode(200, 200), "SFML works!");
    sf::CircleShape shape(100.f);
    shape.setFillColor(sf::Color::Green);

    while (window.isOpen())
    {
        sf::Event event;
        while (window.pollEvent(event))
        {
            if (event.type == sf::Event::Closed)
                window.close();
        }

        window.clear();
        window.draw(shape);
        window.display();
    }

    return 0;
}
 

Hallo wereld in een SFML-venster

Laten we een klein programma schrijven dat een venster opent en "Hallo wereld" op het scherm schrijven.

#include <SFML\Graphics.hpp>
#include <cassert>

int main() {
    sf::RenderWindow sfmlWin(sf::VideoMode(600, 360), "Hello World SFML Window");
    sf::Font font;
    //You need to pass the font file location
    if (!font.loadFromFile(/*
                           Put the filename that identify the font file you want to load*/"myfont.ttf")) {
        return -1;
    }
    sf::Text message("Hello, World !", font);

    while (sfmlWin.isOpen()) {

        sf::Event e;
        while (sfmlWin.pollEvent(e)) {

            switch (e.type) {
            case sf::Event::EventType::Closed:
                sfmlWin.close();
                break;
            }
        }

        sfmlWin.clear();
        sfmlWin.draw(message);
        sfmlWin.display();
    }
    return 0;
}
 

Laten we uitleggen wat we daar hebben gedaan.

Eerst hebben we een sf::Font object gemaakt. We hebben dit object nodig om de lettertypegegevens op te slaan die we gebruiken om de tekst weer te geven. Daarna hebben we de methode loadFromFile , die wordt gebruikt om het lettertype in het geheugen te laden. Merk op dat SFML niet op de hoogte is van uw systeemlettertypen, dus u moet een bestandsnaam opgeven, geen lettertypenaam

Daarna hebben we een sf::Text object gemaakt. We noemen een constructor met 3 parameters:

  • De tekenreeks die u wilt weergeven
  • Het lettertype dat het object zal gebruiken
  • De tekengrootte in pixels, die we hier niet hebben doorgegeven, dus wordt il ingesteld op de standaardwaarde: 30

Omdat het sf::Text object klaar is, hoeven we het alleen maar te tekenen in de hoofdsfml-lus, door de tekenmethode aan te roepen op het sfmlWin dat we eerder hebben gemaakt

Insallation - macOS

Allereerst moet u de SFML SDK downloaden. Vervolgens moet u de volgende items installeren om te beginnen met het ontwikkelen van SFML-toepassingen:

Koptekstbestanden en bibliotheken

SFML is beschikbaar als dylibs of als frameworks. Er is slechts één type binair bestand vereist, hoewel beide tegelijkertijd op hetzelfde systeem kunnen worden geïnstalleerd. We raden aan om de frameworks te gebruiken.

frameworks

  • Kopieer de inhoud van Frameworks naar / Library / Frameworks.

dylib

  • Kopieer de inhoud van lib naar / usr / local / lib en kopieer de inhoud van include naar / usr / local / include.

SFML-afhankelijkheden

SFML is afhankelijk van enkele externe bibliotheken op Mac OS X. Kopieer de inhoud van extlibs naar / Library / Frameworks.

Xcode-sjablonen

Als u Xcode gebruikt, wordt het sterk aanbevolen om de sjablonen te installeren. Kopieer de SFML-map van sjablonen naar / Bibliotheek / Developer / Xcode / Templates (maak de mappen aan als ze nog niet bestaan).

Installatie - Linux

Er zijn verschillende benaderingen voor de installatie van SFML op Linux:

  1. Installeer het rechtstreeks vanuit de pakketrepository van uw distributie
  2. Download de broncode, bouw het en installeer het
  3. Download de voorgecompileerde SDK en kopieer de bestanden handmatig

Optie 1 heeft de voorkeur; als de versie van SFML die u wilt installeren beschikbaar is in de officiële repository, installeer het dan met uw pakketmanager. Op Debian zou je bijvoorbeeld het volgende doen:

sudo apt-get install libsfml-dev
 

Optie 2 vereist meer werk: u moet ervoor zorgen dat alle afhankelijkheden van SFML, inclusief hun ontwikkelingstitels, beschikbaar zijn, zorgen dat CMake is geïnstalleerd en sommige opdrachten handmatig uitvoeren. Dit resulteert in een pakket dat is afgestemd op uw systeem. Als je deze kant op wilt, is er een speciale tutorial over het zelf bouwen van SFML .

Optie 3 is ten slotte een goede keuze voor een snelle installatie als SFML niet beschikbaar is als officieel pakket. Download de SDK van de downloadpagina, pak het uit en kopieer de bestanden naar de gewenste locatie: een afzonderlijk pad in uw persoonlijke map (zoals / home / me / sfml) of een standaardpad (zoals / usr / local).

Als u al een oudere versie van SFML had geïnstalleerd, zorg er dan voor dat deze niet conflicteert met de nieuwe versie!

Installatie - Windows

De meest gebruikelijke manier om SFML op Windows te installeren, is door de officiële SDK te downloaden

U kunt het archief vervolgens uitpakken en gebruiken in de door u gewenste omgeving.

vcpkg

Hoewel het nog steeds sterk in ontwikkeling is, kunt u, als u Visual studio 2017 of nieuwer gebruikt, SFML ook installeren via vcpkg dat wordt geïntegreerd met visual studio, wat het installatieproces aanzienlijk vereenvoudigt:

vcpkg install sfml