Inicjalizacja projektu.
This commit is contained in:
14
inc/def.hh
Normal file
14
inc/def.hh
Normal file
@@ -0,0 +1,14 @@
|
||||
#ifndef DEF_HH
|
||||
#define DEF_HH
|
||||
|
||||
#include <SFML/Window.hpp>
|
||||
|
||||
/* Plik zawiera definicje stałych globalnych oraz przedefiniowanie istniejących typów. */
|
||||
|
||||
// Długość boku pojedynczego kafelka(który jest kwadratem)
|
||||
const int TILE_SIZE = 64;
|
||||
|
||||
// Przedefiniowanie sf::Vector2f na RealVector
|
||||
typedef sf::Vector2f RealVector;
|
||||
|
||||
#endif
|
||||
38
inc/misc.hh
Normal file
38
inc/misc.hh
Normal file
@@ -0,0 +1,38 @@
|
||||
#ifndef MISC_HH
|
||||
#define MISC_HH
|
||||
|
||||
#include <SFML/Window.hpp>
|
||||
|
||||
#include "def.hh"
|
||||
|
||||
/* Struktura reprezentująca wektor w układzie odniesienia planszy do gier (a nie według rzeczywistych współrzędnych - pikseli). */
|
||||
struct Vector
|
||||
{
|
||||
unsigned int x;
|
||||
unsigned int y;
|
||||
|
||||
// Konstruktor tworzący parę (_x, _y)
|
||||
Vector(unsigned int _x, unsigned int _y) : x(_x), y(_y) {}
|
||||
|
||||
// Konstruktor tworzący parę (x, y) na podstawie rzeczywistych współrzędnych
|
||||
Vector(const RealVector& real_position) : x(real_position.x/TILE_SIZE), y(real_position.y/TILE_SIZE) {}
|
||||
|
||||
// Pobierz rzeczywistą pozycję górnego, lewego narożnika kafelka o współrzędnych (x, y)
|
||||
RealVector getRealVector() const { return RealVector(x*TILE_SIZE, y*TILE_SIZE); }
|
||||
|
||||
// Pobierz rzeczywistą pozycję środka kafelka o współrzędnych (x, y)
|
||||
RealVector getCenterRealVector() const { return RealVector(x*TILE_SIZE + 0.5*TILE_SIZE, y*TILE_SIZE + 0.5*TILE_SIZE); }
|
||||
|
||||
// Operator dodawania wektorów
|
||||
Vector operator+(const Vector& v) { return Vector(x+v.x, y+v.y); }
|
||||
|
||||
// Operator odejmowania wektorów
|
||||
Vector operator-(const Vector& v) { return Vector(x-v.x, y-v.y); }
|
||||
|
||||
// Mnożenie wektora przez liczbę
|
||||
Vector operator*(int a) { return Vector(a*v.x, a*v.y); }
|
||||
Vector operator*(float a) { return Vector(a*v.x, a*v.y); }
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
36
inc/object.hh
Normal file
36
inc/object.hh
Normal file
@@ -0,0 +1,36 @@
|
||||
#ifndef OBJECT_HH
|
||||
#define OBJECT_HH
|
||||
|
||||
/* Klasa object będąca interfejsem po którym dziedziczą pionki.
|
||||
* Klasa ta deklaruje podstawowe elementy obiektów znajdujących się
|
||||
* na planszy, takie jak wyświetlanie, przesuwanie czy odczytywanie pozycji.
|
||||
* Nie definiuje ona jeszcze żadnych kształtów czy kolorów, jest więc zatem klasą
|
||||
* w zasadzie czysto abstrakcyjną. */
|
||||
|
||||
#include <SFML/Window.hpp>
|
||||
|
||||
#include "def.hh"
|
||||
#include "misc.hh"
|
||||
|
||||
class Object
|
||||
{
|
||||
private:
|
||||
|
||||
// Pozycja obiektu
|
||||
Vector position;
|
||||
public:
|
||||
|
||||
// Pobierz pozycję obiektu
|
||||
Vector getPosition() const { return position; }
|
||||
|
||||
// Ustaw pozycję obiektu
|
||||
void setPosition(const Vector& _position) { position = _position }
|
||||
|
||||
// Przesuń obiekt o wektor
|
||||
void move(const Vector& vector) {}
|
||||
|
||||
// Rysuj obiekt
|
||||
void draw(sf::RenderWindow window) = 0;
|
||||
};
|
||||
|
||||
#endif
|
||||
10
src/main.cpp
Normal file
10
src/main.cpp
Normal file
@@ -0,0 +1,10 @@
|
||||
#include <iostream>
|
||||
#include <SFML/Window.hpp>
|
||||
|
||||
#include "../inc/def.hh"
|
||||
#include "../inc/misc.hh"
|
||||
|
||||
int main()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user