sfml Zelfstudie
Aan de slag met sfml
Zoeken…
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
- Download eerst een kopie van SFML van de officiële pagina .
- 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;
}
Installatie - Linux
Er zijn verschillende benaderingen voor de installatie van SFML op Linux:
- Installeer het rechtstreeks vanuit de pakketrepository van uw distributie
- Download de broncode, bouw het en installeer het
- 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
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).
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