Visual Studio + SFML Konfiguracja

Czym jest SFML – to prosta, otwarta i szybka biblioteka programistyczna działająca na wielu platformach. Służy przede wszystkim do pisania gier, wykorzystuje akcelerację sprzętową 2D przy użyciu OpenGL. Jest napisana w C++, również wykorzystywana jest w języku C, .Net, Pythonie oraz Javie. Biblioteka wyposażona jest w następujące moduły:

  • System – obsługa czasu i wątków.
  • Window – okna i interakcję z użytkownikiem.
  • Graphics – grafiki i jej renderowanie na ekranie.
  • Audio – muzyka i dźwięki.
  • Network – komunikacja sieciowa.

Pobranie SFML

Link do strony.
Pliki dobrze wypakować do workspace gdzie będziemy robić projekt, aby łatwo go podlinkować i utrzymać porządek.

Dodawanie nowego projektu Visual Studio 2015

Wybieramy C++ projekt win32 jako Console Application, następnie zaznaczamy Empty Project i Odznaczamy SDL.

Następnie add new item i dodajemy plik main.cpp

Konfiguracja i dodawanie bibliotek.

Jeśli katalog z bibliotekami o nazwie SFML będzie różnorzędny z katalogiem projektu stworzonym przez VS to następnie w projekcie wybieramy Property i C++->General w Additional Include Directories wpisujemy: $(SolutionDir)\..\SFML\include; to znaczy że z pozycji katalogu projektu wycofamy się o jedną gałąź drzewa i wejdziemy do kolejnych katalogów.

Następnie przechodzimy do Linker i General Additional Library Directories wpisujemy $(SolutionDir)\..\SFML\lib;

Teraz należy przejść do Input w liknerze i dodać wpisy w Additional Dependiencies dla debug:

sfml-main-d.lib
sfml-graphics-d.lib
sfml-window-d.lib
sfml-system-d.lib
sfml-audio-d.lib
opengl32.lib
freetype.lib
jpeg.lib
winmm.lib
gdi32.lib

To wszystko, teraz można korzystać z bibliotek SFML.

Przykładowy kod do umieszczenia w main.cpp

#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;

}

Wynik kodu:

Dodaj komentarz

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.