sfml Samouczek
Rozpoczęcie pracy z sfml
Szukaj…
Uwagi
SFML to multimedia
SFML zapewnia prosty interfejs do różnych komponentów komputera, aby ułatwić rozwój gier i aplikacji multimedialnych. Składa się z pięciu modułów: system, okno, grafika, audio i sieć.
Odkryj ich funkcje bardziej szczegółowo w samouczkach i dokumentacji API .
SFML jest wieloplatformowy
Dzięki SFML Twoja aplikacja może się kompilować i uruchamiać po wyjęciu z pudełka w najpopularniejszych systemach operacyjnych: Windows, Linux, Mac OS X, a wkrótce także Android i iOS.
Wstępnie skompilowane zestawy SDK dla Twojego ulubionego systemu operacyjnego są dostępne na stronie pobierania .
SFML jest wielojęzyczny
SFML ma oficjalne powiązania dla języków C i .Net. Dzięki aktywnej społeczności jest także dostępny w wielu innych językach, takich jak Java, Ruby, Python, Go i innych.
Dowiedz się więcej o nich na stronie powiązań .
Wersje
Wersja | Data wydania |
---|---|
1.0 | 2007-07-01 |
1.1 | 2007-09-18 |
1.2 | 2008-07-16 |
1.3 | 2008-06-22 |
1.4 | 07.01.2009 |
1.5 | 2009-06-04 |
1.6 | 2010-04-06 |
2.0 | 29.04.2013 |
2.1 | 2013-07-27 |
2.2 | 17.12.2014 |
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 | 04.11.2016 |
2.4.2 | 08.02.2017 |
Instalacja lub konfiguracja
- Najpierw pobierz kopię SFML z oficjalnej strony .
- Zapisz go w dowolnym miejscu na komputerze, aby był łatwo dostępny.
- Otwórz Codeblocks.
- Przejdź do Project-> Build Options-> zakładka LinkerSettings.
- Kliknij przycisk Dodaj i przejdź do folderu bin SFML i wybierz wszystkie znajdujące się tam pliki.
- Teraz przejdź do karty Katalogi wyszukiwania i dodaj folder „dołącz” w SFML.
- Na tej samej karcie kliknij podkartę Ustawienia konsolidatora i dodaj folder „bin”.
Podstawowy program SFML
Jeśli wszystko zostało poprawnie skonfigurowane, poniższy fragment pokaże okno zatytułowane „SFML działa!” z zielonym kółkiem:
#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;
}
Instalacja - Linux
Istnieją różne podejścia do instalacji SFML w systemie Linux:
- Zainstaluj go bezpośrednio z repozytorium pakietów twojej dystrybucji
- Pobierz kod źródłowy, skompiluj go i zainstaluj
- Pobierz wstępnie skompilowany zestaw SDK i ręcznie skopiuj pliki
Preferowana jest opcja 1; jeśli wersja SFML, którą chcesz zainstalować, jest dostępna w oficjalnym repozytorium, zainstaluj ją za pomocą menedżera pakietów. Na przykład w Debianie możesz wykonać:
sudo apt-get install libsfml-dev
Opcja 2 wymaga więcej pracy: musisz upewnić się, że wszystkie zależności SFML, w tym ich nagłówki programistyczne, są dostępne, upewnić się, że CMake jest zainstalowany, i ręcznie wykonać niektóre polecenia. W ten sposób powstanie pakiet dostosowany do twojego systemu. Jeśli chcesz iść w tę stronę, znajdziesz dedykowany samouczek na temat samodzielnego budowania SFML .
Wreszcie opcja 3 jest dobrym wyborem do szybkiej instalacji, jeśli SFML nie jest dostępny jako oficjalny pakiet. Pobierz zestaw SDK ze strony pobierania, rozpakuj go i skopiuj pliki do preferowanej lokalizacji: albo osobną ścieżkę w folderze osobistym (jak / home / me / sfml), albo standardową ścieżkę (jak / usr / local).
Jeśli masz już zainstalowaną starszą wersję SFML, upewnij się, że nie będzie w konflikcie z nową wersją!
Instalacja - Windows
Najczęstszym sposobem instalowania SFML w systemie Windows jest pobranie oficjalnego zestawu SDK
Następnie możesz rozpakować archiwum i użyć go w wybranym środowisku.
vcpkg
Chociaż wciąż jest w fazie rozwoju, jeśli używasz Visual Studio 2017 lub nowszej wersji, możesz również zainstalować SFML poprzez vcpkg, który integruje się z Visual Studio, co znacznie upraszcza proces instalacji:
vcpkg install sfml
Insallation - macOS
Przede wszystkim musisz pobrać zestaw SDK SFML. Następnie, aby rozpocząć tworzenie aplikacji SFML, musisz zainstalować następujące elementy:
Pliki nagłówkowe i biblioteki
SFML jest dostępny jako dylibs lub jako framework. Wymagany jest tylko jeden typ pliku binarnego, chociaż oba można zainstalować jednocześnie w tym samym systemie. Zalecamy korzystanie z ram.
Ramy
- Skopiuj zawartość ram do / Library / Frameworks.
dylib
- Skopiuj zawartość lib do / usr / local / lib i skopiuj zawartość include do / usr / local / include.
Zależności SFML
SFML zależy od kilku zewnętrznych bibliotek w Mac OS X. Skopiuj zawartość extlibs do / Library / Frameworks.
Szablony Xcode
Jeśli używasz Xcode, zdecydowanie zaleca się instalację szablonów. Skopiuj katalog SFML z szablonów do / Library / Developer / Xcode / Templates (utwórz foldery, jeśli jeszcze nie istnieją).
Witaj świecie w oknie SFML
Napiszmy mały program, który otworzy okno, i napisz „Hello World” na ekranie.
#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;
}
Wyjaśnijmy, co tam zrobiliśmy.
Najpierw stworzyliśmy obiekt sf::Font
. Potrzebujemy tego obiektu do przechowywania danych czcionek, które wykorzystamy do wyświetlenia tekstu. Następnie loadFromFile
metodę loadFromFile
, używaną do ładowania czcionki do pamięci. Należy pamiętać, że SFML nie wie o twoich czcionkach systemowych, dlatego musisz podać nazwę pliku, a nie nazwę czcionki
Następnie stworzyliśmy obiekt sf::Text
. Konstruktor 3-parametrowy nazywamy:
- Ciąg, który chcesz wyświetlić
- Czcionka, której będzie używał obiekt
- Rozmiar znaku w pikselach, którego tutaj nie przekazaliśmy, więc zostanie ustawiona domyślna wartość: 30
Ponieważ obiekt sf::Text
jest gotowy, wystarczy narysować go w głównej pętli sfml, wywołując metodę draw na sfmlWin
okna renderowania sfmlWin
, który wcześniej utworzyliśmy