Перед началом работы отредактируйте пути в файле main.py
:
from_path = '' # Путь к папке, откуда будут копироваться файлы
to_path = '' # Путь к папке, куда будут создаваться проекты
Чтобы создать новый проект, выполните одну из следующих команд:
$ insdl create PROJECT_NAME -flag # Запустите файл из папки create с insdl.bat
или
$ .\create.bat
или
$ python main.py create PROJECT_NAME -flag
-h
— выводит список всех доступных команд.-vsc
— добавляет папку.vscode
с уже настроенным g++.-bat
— добавлять файлcompile.bat
к вам в проект
Чтобы удалить проект, используйте одну из следующих команд:
$ insdl del PROJECT_NAME # Запустите файл из папки create с insdl.bat
или
$ python main.py del PROJECT_NAME
Для компиляции проекта выполните одну из следующих команд:
$ insdl compile PROJECT_NAME # Запустите файл из папки create с insdl.bat
или
$ python main.py compile PROJECT_NAME
или запустите compiler.bat
.
Класс app
отвечает за создание окна, обработку событий и управление графикой.
SDL_Window *Window
: Указатель на окно SDL.SDL_Surface *Surface
: Указатель на поверхность окна.SDL_Renderer *Render
: Указатель на рендерер.bool quit
: Флаг для выхода из приложения.vector<keyBindStruct> keyBindings
: Вектор для хранения привязок клавиш.vector<mouseBindStruct> mouseBindings
: Вектор для хранения привязок кнопок мыши.vector<mouseMotionBindStruct> mouseMotionBindings
: Вектор для хранения привязок движения мыши.colorStruct color
: Структура для хранения цвета.windowStruct window
: Структура для хранения параметров окна.
void init(int width, int height, string name, bool render = false)
: Инициализация окна.void fill(Uint8 r = -1, Uint8 g = -1, Uint8 b = -1)
: Заполнение окна цветом. Eсли хотите оставить текущий цвет используйте -1.void update()
: Обновление содержимого окна.void setIcon(texture icon)
: Установить иконку окна.void change(int width, int height, string name)
: Изменение размера и названия окна.void exit()
: Закрытие приложения.template<typename Func> void bindKey(SDL_Scancode key, Func func)
: Привязка функции к нажатию клавиши.template<typename Func> void bindMouseButton(Uint8 button, Func func)
: Привязка функции к нажатию кнопки мыши.template<typename Func> void bindMouseMotion(Func func)
: Привязка функции к движению мыши.
Класс text
создает текст и позволяет управлять его содержимым, цветом и текстурой.
text(SDL_Renderer *render, const string& text, string file, Uint8 r = 255, Uint8 g = 255, Uint8 b = 255)
Создает текст с заданным содержимым, шрифтом и цветом.render
: Указатель на рендерер SDL.text
: Текст для отображения.file
: Путь к файлу шрифта.r
,g
,b
: Цвет текста (по умолчанию белый).
-
void destroy()
Уничтожает текстуру и поверхность текста. -
void setText(const string& newText)
Изменяет текст и обновляет текстуру.newText
: Новый текст для отображения.
-
void setColor(Uint8 r = -1, Uint8 g = -1, Uint8 b = -1)
Изменяет цвет текста и обновляет текстуру.r
,g
,b
: Новый цвет текста (если указать -1, будет использоваться текущий цвет).
-
textData get()
Возвращает данные текста, включая текстуру, поверхность, шрифт и цвет.
Класс rect
представляет собой прямоугольник и позволяет управлять его размерами, положением и цветом.
rect(int x = 0, int y = 0, int w = 0, int h = 0)
Создает прямоугольник с заданными координатами и размерами.x
,y
: Координаты верхнего левого угла.w
,h
: Ширина и высота прямоугольника.
-
void setRect(int x, int y, int w, int h)
Устанавливает координаты и размеры прямоугольника. -
void setPosition(int x, int y)
Устанавливает позицию прямоугольника. -
void setSize(int w, int h)
Устанавливает размеры прямоугольника. -
void setX(int x)
,void setY(int y)
,void setWidth(int w)
,void setHeight(int h)
Устанавливают соответствующие параметры прямоугольника. -
void addX(int x)
,void addY(int y)
,void addWidth(int w)
,void addHeight(int h)
Увеличивают соответствующие параметры прямоугольника. -
void subX(int x)
,void subY(int y)
,void subWidth(int w)
,void subHeight(int h)
Уменьшают соответствующие параметры прямоугольника. -
int getX()
,int getY()
,int getWidth()
,int getHeight()
Возвращают соответствующие параметры прямоугольника. -
SDL_Rect get()
Возвращает структуруSDL_Rect
. -
void fill(SDL_Surface *surface, Uint8 r = -1, Uint8 g = -1, Uint8 b = -1)
Заполняет прямоугольник цветом на указанной поверхности. Eсли хотите оставить текущий цвет используйте -1. -
void update(SDL_Surface *surface)
Обновляет прямоугольник на указанной поверхности. -
bool onTouch(rect& otrect)
Проверяет, пересекается ли текущий прямоугольник с другим прямоугольникомotrect
.
Возвращаетtrue
, если прямоугольники пересекаются, иначеfalse
. -
bool onHover()
Проверяет, находится ли курсор мыши внутри текущего прямоугольника.
Возвращаетtrue
, если курсор находится внутри, иначеfalse
.
Класс frect
представляет собой прямоугольник с плавающими координатами и позволяет управлять его размерами, положением и цветом.
frect(int x = 0, int y = 0, int w = 0, int h = 0)
Создает прямоугольник с заданными координатами и размерами.x
,y
: Координаты верхнего левого угла.w
,h
: Ширина и высота прямоугольника.
-
void setFrect(int x, int цуаy, int w, int h)
Устанавливает координаты и размеры прямоугольника. -
void setPosition(int x, int y)
Устанавливает позицию прямоугольника. -
void setSize(int w, int h)
Устанавливает размеры прямоугольника. -
void setX(int x)
,void setY(int y)
,void setWidth(int w)
,void setHeight(int h)
Устанавливают соответствующие параметры прямоугольника. -
void addX(int x)
,void addY(int y)
,void addWidth(int w)
,void addHeight(int h)
Увеличивают соответствующие параметры прямоугольника. -
void subX(int x)
,void subY(int y)
,void subWidth(int w)
,void subHeight(int h)
Уменьшают соответствующие параметры прямоугольника. -
int getX()
,int getY()
,int getWidth()
,int getHeight()
Возвращают соответствующие параметры прямоугольника. -
SDL_FRect get()
Возвращает структуруSDL_FRect
. -
void fill(SDL_Renderer *render, Uint8 r = -1, Uint8 g = -1, Uint8 b = -1, Uint8 alpha = -1)
Заполняет прямоугольник цветом на указанном рендерере. Eсли хотите оставить текущий цвет используйте -1. -
void fillTexture(SDL_Renderer *render, texture *texture)
Заполняет прямоугольник текстурой. -
void fillText(SDL_Renderer *render, text *text)
Заполняет прямоугольник текстом. -
bool onTouch(frect& otfrect)
Проверяет, пересекается ли текущий прямоугольник с другим прямоугольникомotfrect
.
Возвращаетtrue
, если прямоугольники пересекаются, иначеfalse
. -
bool onHover()
Проверяет, находится ли курсор мыши внутри текущего прямоугольника.
Возвращаетtrue
, если курсор находится внутри, иначеfalse
.
Класс texture
управляет текстурами, загружая их из файлов.
texture(SDL_Renderer *render, const char *file)
Загружает текстуру из файла BMP.render
: Указатель на рендерер SDL.file
: Путь к файлу BMP.
-
textureData get()
Возвращает данные текстуры. -
void destroy()
Уничтожает текстуру.
InSDL также включает простую библиотеку для создания задержек.
void delayms(int msec)
: Задержка в миллисекундах.void delaysc(int sec)
: Задержка в секундах.void delaymn(int min)
: Задержка в минутах.void delayhr(int hour)
: Задержка в часах.
Используются только в начале основного цикла
Внутрь передается аргумент app& app
— объект приложения.
-
void exitEvent(app& app)
: Обрабатывает событие выхода из приложения. -
void handleEvent(app& app)
: Обрабатывает все события (клавиши, мышь и тд).
#include <InSDL.hpp>
int main()
{
app myapp;
myapp.init(700, 700, "My InSDL Window");
while (!myapp.quit) {
handleEvent(myapp);
// code here
myapp.update();
}
myapp.exit();
return 0;
}