Wszystkie ćwiczenia


Ćwiczenia 11

SFML

Wykorzystanie C++ w praktyce

Zadanie 0: Przygotowanie środowiska

1. Uruchom Visual Studio 2017 (koniecznie ta wersja, inaczej mogą być znaczące różnice).

Tworzenie projektu w Visual Studio

2. Wybierz "Windows Console Application"

Tworzenie projektu w Visual Studio

3. Kliknij prawym przyciskiem na projekcie i wybierz "Open Folder in File Explorer".

Tworzenie projektu w Visual Studio

4. Pobierz bibliotekę SFML dla Visual Studio 15 (Wersja z 2017 roku) w wersji 32 bitów i umieść w folderze projektu, a następnie wypakuj zawartość.

Link do strony z pobieraniem
Tworzenie projektu w Visual Studio

5. Naciśnij prawym przyciskiem myszy na projekt i wybierz "Properties".

Tworzenie projektu w Visual Studio

6. W zakładce C/C++ -> General dodaj do wartości "Additional Include Directories" ścieżkę "$(ProjectDir)\SFML-2.5.1\include". Zmienna ProjectDir pozwala nam odnieść się do aktualnego położenia projektu, więc zmieniając jego lokalizację nie popsuje się zależność i budowa projektu.

Tworzenie projektu w Visual Studio

6. W zakładce Linker -> General dodaj do wartości "Additional Library Directories" ścieżkę "$(ProjectDir)\SFML-2.5.1\lib".

Tworzenie projektu w Visual Studio

7. W zakładce C/C++ -> Preprocessor dodaj oddzielając średnikiem "SFML_STATIC".

Tworzenie projektu w Visual Studio

8. W zakładce Linker -> Input dodaj do wartości "Additional Dependencies" biblioteki tak jak jest to na podglądzie.

Tworzenie projektu w Visual Studio

9. Do głównego katalogu z projektem wypakuj wszystkie pliki z rozszerzeniem DLL, które znajdują się w rozpakowanym katalogu SFML-2.5.1/bin

Tworzenie projektu w Visual Studio
Zadanie 1

Skopiuj przykładowy kod zamieszczony poniżej, a następnie uruchom aplikację.


#include "pch.h"
#include <iostream>

#include <SFML/Graphics.hpp>
#include <SFML/Window.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;
}
    
Zadanie 2: Eksperymentowanie

Stwórz aplikację z użyciem SFML, która będzie stanowić takie okno, że:

  • 4 koła o rozmiarach (30x30), każde o innym kolorze, zostaje umieszczone losowo na ekranie.
  • Koła poruszają się w dowolną stronę i odbijają się od brzegów.
  • Aplikacja po naciśnięciu klawisza ENTER przechodzi do widoku pełnoekranowego.
  • Aplikacja po naciśnięciu klawisza ESCAPE wychodz z widoku pełnoekranowego.
Zagadnienie Dokumentacja
Pełna dokumentacja Link
Rysowanie kształtów Link
Obsługa klawiatury Link
Pełny ekran Link