Autorzy projektu:
Antoni Grajek
Michał Mokrzycki
Igor Szabłowski
Projekt zakłada stworzenie gry inspirowanej tytułem "The Binding of Isaac". Będzie to gra 2D typu Roguelike, z widokiem z góry. Celem gry jest przejście wszystkich etapów rozgrywki składających się z losowo generowanych pomieszczeń w których będą znajdowali się przeciwnicy oraz przeszkody. Urozmaiceniem gry będą przedmioty które będzie można znaleźć w pokojach, bądź kupić od handlarza. Dzięki przedmiotom będziemy mogli zmieniać atrybuty naszej postaci takie jak np: poziom zdrowia lub prędkość ruchu oraz atrybuty broni między innymi zasięg, prędkość czy siła ataku.
Projekt jest realizowany w języku C++, z naciskiem na programowanie obiektowe. Wartstwę trwałości projektu będą stanowić najprawdopodobniej zapisy do plików z rozszerzeniem csv oraz json. Kontakt z użytkownikiem i interfejs użytkownika będą oparte na bibliotece SFML, a reszta programu będzie zrealizowana z wykorzystywaniem elementów biblioteki standardowej.
Klasa odpowiedzialna za działanie gry, interakcje z użytkownikiem, interfejs startowy.
Klasa GameCharacter będzie funkcjonowała równocześnie z klasą Sprite z biblioteki SFML. Klasa GameCharacter będzie klasą odpowiedzialną za każdą postać znajdująca się w grze. Zawiera atrybuty i metody wspólne dla klasy Player oraz klasy Enemy.
- speed
- health_power
- name
Dziedziczy po klasie GameCharacter. Jest instancją gracza na polu rozgrywki.
Zawiera atrybuty klasy GameCharacter oraz własne takie jak:
- items
- gold
- weapons
Dziedziczy po klasie GameCharacter. Jest instancją wroga na polu rozgrywki.
Zawiera atrybuty klasy GameCharacter.
Klasa odpowiedzialna za pociski wystrzelane przez postać.
- attack_speed
- attack_range
- damage
Zawiera zbiór statystyk i funkcjonalności przedmiotu. Zawiera atrybuty i metody wspólne dla klas PurchasableItems i ItemDrops.
- additional_health
- additional_damage
- additional_range
- additional_attack_speed
- additional_player_speed
Dziedziczy po klasie Items.
- item_cost
Obiekt pozwalający graczowi na zakupienie przedmiotu.
- kolekcja przedmiotów możliwych do kupienia(kolekcja obiektów PurchasableItems)
Zbiór i ułożenie pokojów do przejścia(obiektów klasy Room)
- kolekcja pokojów
- TBA
Klasa opisująca konfiguracje przeszkód oraz przeciwników znajdujących się w konkretnym pokoju.
- enemies_amount
- is_boss_room
- enemies_collection