sfml Handledning
Komma igång med sfml
Sök…
Anmärkningar
SFML är multimedia
SFML tillhandahåller ett enkelt gränssnitt till de olika komponenterna på din PC för att underlätta utvecklingen av spel och multimediaapplikationer. Den består av fem moduler: system, fönster, grafik, ljud och nätverk.
Upptäck deras funktioner mer detaljerat i handledning och API-dokumentation .
SFML är multiplattform
Med SFML kan din applikation kompilera och gå tom för rutan på de vanligaste operativsystemen: Windows, Linux, Mac OS X och snart Android och iOS.
Förkompilerade SDK: er för ditt favorit OS finns tillgängliga på nedladdningssidan .
SFML är flerspråkigt
SFML har officiella bindningar för C- och .Net-språken. Och tack vare sin aktiva community finns den också på många andra språk som Java, Ruby, Python, Go och mer.
Läs mer om dem på bindningssidan .
versioner
Version | Utgivningsdatum |
---|---|
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 |
Installation eller installation
- Ladda ner först en kopia av SFML från den officiella sidan .
- Spara det var som helst på din dator där det lätt kan nås.
- Öppna kodblock.
- Gå till Project-> Build Options-> LinkerSettings-fliken.
- Klicka på Lägg till- knappen och gå till bin-mappen i SFML och välj alla filer som finns där.
- Gå nu till fliken Sökkataloger och lägg till mappen "inkludera" i SFML.
- På samma flik klickar du på underfliken Linker-inställningar och lägger till "bin" -mappen.
Grundläggande SFML-program
Om allt har konfigurerats korrekt visar följande utdrag ett fönster med titeln "SFML fungerar!" med en grön 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;
}
Installation - Linux
Det finns olika sätt att installera SFML på Linux:
- Installera det direkt från din distributions paketförråd
- Skaffa källkoden, bygg den och installera den
- Ladda ner den förkompilerade SDK och kopiera filerna manuellt
Alternativ 1 är det föredragna; om den version av SFML som du vill installera är tillgänglig i det officiella arkivet, installera den med din pakethanterare. Till exempel på Debian skulle du göra:
sudo apt-get install libsfml-dev
Alternativ 2 kräver mer arbete: du måste se till att alla SFML-beroenden inklusive deras utvecklingshuvuden är tillgängliga, se till att CMake är installerat och kör några kommandon manuellt. Detta kommer att resultera i ett paket som är skräddarsytt för ditt system. Om du vill gå detta, finns det en dedikerad självstudie för att bygga SFML själv .
Slutligen är alternativ 3 ett bra val för snabb installation om SFML inte är tillgängligt som ett officiellt paket. Ladda ner SDK från nedladdningssidan, packa upp den och kopiera filerna till önskad plats: antingen en separat sökväg i din personliga mapp (som / home / me / sfml) eller en standardväg (som / usr / local).
Om du redan hade en äldre version av SFML installerad, se till att den inte kommer i konflikt med den nya versionen!
Installation - Windows
Det vanligaste sättet att installera SFML på windows är att ladda ner den officiella SDK
Du kan sedan packa upp arkivet och använda det i din miljö du väljer.
vcpkg
Även om det fortfarande är starkt under utveckling, om du använder Visual studio 2017 eller nyare, kan du också installera SFML via vcpkg som integreras med Visual Studio, vilket förenklar installationsprocessen:
vcpkg install sfml
Insallation - macOS
Först av allt behöver du ladda ner SFML SDK. Sedan måste du installera följande objekt för att börja utveckla SFML-applikationer:
Rubrikfiler och bibliotek
SFML finns antingen som dylibs eller som ramverk. Endast en typ av binär krävs även om båda kan installeras samtidigt på samma system. Vi rekommenderar att du använder ramarna.
ramar
- Kopiera innehållet i ramverk till / Bibliotek / ramverk.
dylib
- Kopiera innehållet i lib till / usr / local / lib och kopiera innehållet i include till / usr / local / include.
SFML-beroenden
SFML beror på några externa bibliotek på Mac OS X. Kopiera innehållet i extlibs till / Library / Frameworks.
Xcode-mallar
Om du använder Xcode rekommenderas starkt att installera mallarna. Kopiera SFML-katalogen från mallar till / Bibliotek / Utvecklare / Xcode / Mallar (skapa mapparna om de inte finns ännu).
Hej värld i ett SFML-fönster
Låt oss skriva ett litet program som öppnar ett fönster och skriver "Hello World" på skärmen.
#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;
}
Låt oss förklara vad vi gjorde där.
Först skapade vi ett sf::Font
objekt. Vi behöver detta objekt för att lagra teckensnittdata som vi kommer att använda för att visa texten. Efter det kallade loadFromFile
metoden loadFromFile
, som används för att ladda teckensnittet i minnet. Vi bör notera att SFML inte vet om dina systemteckensnitt, så du måste ange ett filnamn, inte ett fontnamn
Efter det skapade vi ett sf::Text
objekt. Vi kallar en 3-parameterkonstruktör som tar:
- Strängen du vill visa
- Teckensnittet som objektet kommer att använda
- Teckenstorleken i pixel, som vi inte har passerat här, så jag kommer att ställas in på standardvärdet: 30
Eftersom sf::Text
objektet är klart, behöver vi bara rita det i huvud sfml-slingan genom att kalla sfmlWin
på sfmlWin
fönsterobjektet som vi skapade tidigare