|
Ivan Mahonin |
7a004b |
<html>
|
|
Ivan Mahonin |
7a004b |
<head>
|
|
Ivan Mahonin |
7a004b |
<meta charset="UTF-8" />
|
|
Ivan Mahonin |
7a004b |
<link rel="stylesheet" type="text/css" href="style.css" />
|
|
Ivan Mahonin |
7a004b |
<title>Запуск и общие функции - Helianthus</title>
|
|
Ivan Mahonin |
7a004b |
</head>
|
|
Ivan Mahonin |
7a004b |
<body>
|
|
Ivan Mahonin |
7a004b |
|
|
Ivan Mahonin |
77a314 |
Helianthus
|
|
Ivan Mahonin |
77a314 |
|
|
Ivan Mahonin |
77a314 |
Helianthus: Документация
|
|
Ivan Mahonin |
77a314 |
Установка
|
|
Ivan Mahonin |
7a004b |
Запуск и общие функции
|
|
Ivan Mahonin |
7a004b |
Клавиатура и мышь
|
|
Ivan Mahonin |
7a004b |
Рисование
|
|
Ivan Mahonin |
cece70 |
Шрифты и текст
|
|
Ivan Mahonin |
cece70 |
Текстуры и анимация
|
|
Ivan Mahonin |
cece70 |
Буфер кадра
|
|
Ivan Mahonin |
7a004b |
Спрайты
|
|
Ivan Mahonin |
7a004b |
Группы спрайтов
|
|
Ivan Mahonin |
7a004b |
Звук
|
|
Ivan Mahonin |
e9aada |
Пользовательский интерфейс
|
|
Ivan Mahonin |
7a004b |
|
|
Ivan Mahonin |
7a004b |
Все функции
|
|
Ivan Mahonin |
7a004b |
|
|
Ivan Mahonin |
7a004b |
|
|
Ivan Mahonin |
7a004b |
|
|
Ivan Mahonin |
7a004b |
Запуск и общие функции
|
|
Ivan Mahonin |
7a004b |
|
|
Ivan Mahonin |
7a004b |
Для подключения и использования библиотеки Helianthus нужно:
|
|
Ivan Mahonin |
7a004b |
- подключить файл <helianthus.h>
|
|
Ivan Mahonin |
d38577 |
- создать и зарегистрировать функции для начальной загрузки и для перерисовки кадра (см. windowSetInit и windowSetDraw)
|
|
Ivan Mahonin |
d38577 |
- также вы можете зарегистрировать функцию для выполнения каких-либо действий при завершении программы (windowSetDeinit);
|
|
Ivan Mahonin |
d38577 |
- вызвать функцию windowRun для запуска вашей программы.
|
|
Ivan Mahonin |
7a004b |
|
|
Ivan Mahonin |
7a004b |
Вот что должно получиться:
|
|
Ivan Mahonin |
7a004b |
|
|
Ivan Mahonin |
7a004b |
|
|
Ivan Mahonin |
7a004b |
#include <helianthus.h>
|
|
Ivan Mahonin |
7a004b |
|
|
Ivan Mahonin |
7a004b |
void init() {
|
|
Ivan Mahonin |
7a004b |
// Здесь будут команды для начальной загрузки.
|
|
Ivan Mahonin |
7a004b |
// Они выполнятся только один раз в самом начале.
|
|
Ivan Mahonin |
7a004b |
}
|
|
Ivan Mahonin |
7a004b |
|
|
Ivan Mahonin |
7a004b |
void draw() {
|
|
Ivan Mahonin |
7a004b |
// Здесь будут команды для движения и рисования.
|
|
Ivan Mahonin |
7a004b |
// Во время работы программы они будут запускаться
|
|
Ivan Mahonin |
7a004b |
// несколько раз в секунду.
|
|
Ivan Mahonin |
7a004b |
}
|
|
Ivan Mahonin |
7a004b |
|
|
Ivan Mahonin |
7a004b |
int main() {
|
|
Ivan Mahonin |
d38577 |
windowSetInit(&init);
|
|
Ivan Mahonin |
d38577 |
windowSetDraw(&draw);
|
|
Ivan Mahonin |
d38577 |
windowRun();
|
|
Ivan Mahonin |
7a004b |
return 0;
|
|
Ivan Mahonin |
7a004b |
}
|
|
Ivan Mahonin |
7a004b |
|
|
Ivan Mahonin |
7a004b |
|
|
Ivan Mahonin |
7a004b |
|
|
Ivan Mahonin |
d38577 |
После завершения работы Helianthus (при окончании выполнения функции windowRun) все созданные вами объекты библиотеки будут удалены автоматически. Если вы хотите удалить что-то вручную, смотрите функции удаления для соответствующих объектов (spriteDestroy, groupDestroy, soundDestroy, fontDestroy, textLayoutDestroy, animationDestroy, framebufferDestroy, closeDirectory).
|
|
Ivan Mahonin |
1badb6 |
|
|
Ivan Mahonin |
d38577 |
Вы можете задать размер окна программы функциями windowSetSize, windowSetWidth, windowSetHeight и задать заголовок окна функцией windowSetTitle. В отличие от большинства других функций Helianthus эти функции можно вызывать до запуска windowRun.
|
|
Ivan Mahonin |
1badb6 |
|
|
Ivan Mahonin |
d38577 |
Изначально окно имеет фиксированный размер, который вы можете менять только из программы, командами указанными выше. Однако, вы можете это изменить и разрешить пользователю изменять размер окна, смотрите функцию windowSetResizable.
|
|
Ivan Mahonin |
1badb6 |
|
|
Ivan Mahonin |
e9aada |
Окно программы непрерывно перерисовывается с частотой 24 кадра в секунду. Частоту перерисовки вы можете поменять при помощи функции windowSetFrameRate. Рекомендуем также ознакомиться с функцией windowSetVariableFrameRate.
|
|
Ivan Mahonin |
1badb6 |
|
|
Ivan Mahonin |
d38577 |
Программа ведёт отсчёт времени и кадров с момента запуска вы можете получить значение этих счётчиков при помощи функций windowGetSeconds и windowGetFrameCount. Длительность одного кадра (длительность предыдущего отрисованного кадра) можно узнать вызвав функцию windowGetFrameTime.
|
|
Ivan Mahonin |
1badb6 |
|
|
Ivan Mahonin |
e9aada |
Для получения доступа к буферу обмена (того самого с которым связаны клавиши Ctrl+C, Ctrl+V) используйте функции windowGetClipboardText и windowSetClipboardText.
|
|
Ivan Mahonin |
e9aada |
|
|
Ivan Mahonin |
1badb6 |
Также Helianthus предоставляет некоторые общие функции которые не представлены в стандартном я зыке C:
|
|
Ivan Mahonin |
1badb6 |
- помощники в генерации случайных чисел (randomNumber, randomFloat);
|
|
Ivan Mahonin |
cece70 |
- функция поворота вектора rotateVector;
|
|
Ivan Mahonin |
1badb6 |
- функции для чтения папок (см. openDirectory);
|
|
Ivan Mahonin |
1badb6 |
- функции проверки существования файлов и папок — fileExists, directoryExists.
|
|
Ivan Mahonin |
d38577 |
- функции для создания всплывающих окон с текстовыми сообщениями (messageBox, questionBox, questionBox3) и окон для ввода текста (askText, askTextf, askTextEx).
|
|
Ivan Mahonin |
1badb6 |
|
|
Ivan Mahonin |
7a004b |
Функции:
|
|
Ivan Mahonin |
7a004b |
|
|
Ivan Mahonin |
d38577 |
void windowSetInit(Callback init);
|
|
Ivan Mahonin |
7a004b |
|
|
Ivan Mahonin |
d38577 |
Задать функцию для начальной инициализации (загрузки). Эта функция будет запущена только один раз в самом начале работы программы, как только будет вызвана функция windowRun.
|
|
Ivan Mahonin |
7a004b |
|
|
Ivan Mahonin |
7a004b |
Параметры:
|
|
Ivan Mahonin |
7a004b |
|
|
Ivan Mahonin |
7a004b |
init — указатель на функцию начальной инициализации (загрузки). Функция быть работать без параметров и не должна возвращать значение.
|
|
Ivan Mahonin |
7a004b |
|
|
Ivan Mahonin |
d38577 |
void windowSetDraw(Callback draw);
|
|
Ivan Mahonin |
7a004b |
|
|
Ivan Mahonin |
7a004b |
Задать основную функцию вашей программы — функцию для перерисовки кадра. Во время работы программы заданная функция будет запускаться несколько раз в секунду перед перерисовкой каждого кадра. Поместите в неё команды для движения и рисования.
|
|
Ivan Mahonin |
7a004b |
|
|
Ivan Mahonin |
7a004b |
Параметры:
|
|
Ivan Mahonin |
7a004b |
|
|
Ivan Mahonin |
7a004b |
draw — указатель на функцию перерисовки кадра. Функция быть работать без параметров и не должна возвращать значение.
|
|
Ivan Mahonin |
7a004b |
|
|
Ivan Mahonin |
d38577 |
void windowSetDeinit(Callback deinit);
|
|
Ivan Mahonin |
1badb6 |
|
|
Ivan Mahonin |
d38577 |
Задать функцию для выполнения каких-либо действий при завершении программы. Эта функция будет запущена только один раз при окончании работы программы, непосредственно перед завершением выполнения функции windowRun.
|
|
Ivan Mahonin |
1badb6 |
|
|
Ivan Mahonin |
1badb6 |
Параметры:
|
|
Ivan Mahonin |
1badb6 |
|
|
Ivan Mahonin |
1badb6 |
deinit — указатель на функцию которая будет выполнена перед завершением программы.
|
|
Ivan Mahonin |
1badb6 |
|
|
Ivan Mahonin |
d38577 |
void windowRun();
|
|
Ivan Mahonin |
7a004b |
|
|
Ivan Mahonin |
7a004b |
Запустить вашу программу на Helianthus. Перед вызовом этой функции нужно зарегистрировать функции начальной загрузки и перерисовки кадра (см. выше)
|
|
Ivan Mahonin |
7a004b |
|
|
Ivan Mahonin |
d38577 |
void windowStop();
|
|
Ivan Mahonin |
7a004b |
|
|
Ivan Mahonin |
acc470 |
Остановить и закрыть программу. Программа всегда закрывается если пользователь нажмёт на крестик в верхнем правом углу окна, но вы можете добавить и свои способы выхода из программы. Например, в функцию перерисовки вы можете вставить возможность выхода по нажатию клавиши Esc (см. также раздел «Клавиатура и мышь»):
|
|
Ivan Mahonin |
7a004b |
|
|
Ivan Mahonin |
7a004b |
|
|
Ivan Mahonin |
7a004b |
void draw() {
|
|
Ivan Mahonin |
7a004b |
…
|
|
Ivan Mahonin |
cece70 |
if (keyWentDown("escape")) {
|
|
Ivan Mahonin |
d38577 |
windowStop()
|
|
Ivan Mahonin |
7a004b |
}
|
|
Ivan Mahonin |
7a004b |
…
|
|
Ivan Mahonin |
7a004b |
}
|
|
Ivan Mahonin |
7a004b |
|
|
Ivan Mahonin |
7a004b |
|
|
Ivan Mahonin |
7a004b |
|
|
Ivan Mahonin |
d38577 |
int windowGetWidth();
|
|
Ivan Mahonin |
7a004b |
|
|
Ivan Mahonin |
d38577 |
Возвращает ширину окна в пикселях. См. также windowSetWidth.
|
|
Ivan Mahonin |
7a004b |
|
|
Ivan Mahonin |
d38577 |
void windowSetWidth(int width);
|
|
Ivan Mahonin |
7a004b |
|
|
Ivan Mahonin |
d38577 |
Установить ширину окна. Эту функцию можно вызывать до вызова windowRun. См. также windowGetWidth, windowSetHeight, windowSetSize.
|
|
Ivan Mahonin |
7a004b |
|
|
Ivan Mahonin |
7a004b |
Параметры:
|
|
Ivan Mahonin |
7a004b |
|
|
Ivan Mahonin |
7a004b |
width — новая ширина окна.
|
|
Ivan Mahonin |
7a004b |
|
|
Ivan Mahonin |
d38577 |
int windowGetHeight();
|
|
Ivan Mahonin |
7a004b |
|
|
Ivan Mahonin |
d38577 |
Возвращает высоту окна в пикселях. См. также windowSetHeight.
|
|
Ivan Mahonin |
7a004b |
|
|
Ivan Mahonin |
d38577 |
void windowSetHeight(int height);
|
|
Ivan Mahonin |
7a004b |
|
|
Ivan Mahonin |
d38577 |
Установить высоту окна. Эту функцию можно вызывать до вызова windowRun. См. также windowGetHeight, windowSetWidth, windowSetSize.
|
|
Ivan Mahonin |
cece70 |
|
|
Ivan Mahonin |
cece70 |
Параметры:
|
|
Ivan Mahonin |
cece70 |
|
|
Ivan Mahonin |
cece70 |
height — новая высота окна.
|
|
Ivan Mahonin |
cece70 |
|
|
Ivan Mahonin |
d38577 |
void windowSetSize(int width, int height);
|
|
Ivan Mahonin |
cece70 |
|
|
Ivan Mahonin |
d38577 |
Установить сразу и ширину и высоту окна. Эту функцию можно вызывать до вызова windowRun. См. также windowSetWidth, windowSetHeight.
|
|
Ivan Mahonin |
7a004b |
|
|
Ivan Mahonin |
7a004b |
Параметры:
|
|
Ivan Mahonin |
7a004b |
|
|
Ivan Mahonin |
cece70 |
width — новая ширина окна;
|
|
Ivan Mahonin |
cece70 |
height — новая высота окна.
|
|
Ivan Mahonin |
7a004b |
|
|
Ivan Mahonin |
d38577 |
int windowGetResizable();
|
|
Ivan Mahonin |
1badb6 |
|
|
Ivan Mahonin |
1badb6 |
Возвращает TRUE если пользователь имеет возможность изменять размер окна, в противном случае возвращает FALSE.
|
|
Ivan Mahonin |
1badb6 |
|
|
Ivan Mahonin |
d38577 |
void windowSetResizable(int resizable);
|
|
Ivan Mahonin |
1badb6 |
|
|
Ivan Mahonin |
d38577 |
Включает или выключает возможность измерения размеров окна пользователем. Когда включено пользователь может менять размер окна растягивая его, хватаясь за границы, и, появляется кнопка для разворачивания окна на весь экран. Эту функцию можно вызывать до вызова windowRun.
|
|
Ivan Mahonin |
1badb6 |
|
|
Ivan Mahonin |
1badb6 |
Параметры:
|
|
Ivan Mahonin |
1badb6 |
|
|
Ivan Mahonin |
1badb6 |
resizable — если TRUE, то разрешает пользователю изменять размер окна.
|
|
Ivan Mahonin |
1badb6 |
|
|
Ivan Mahonin |
d38577 |
const char* windowGetTitle();
|
|
Ivan Mahonin |
1badb6 |
|
|
Ivan Mahonin |
1badb6 |
Возвращает установленный ранее заголовок окна (строка текста).
|
|
Ivan Mahonin |
1badb6 |
|
|
Ivan Mahonin |
d38577 |
void windowSetTitle(const char *title);
|
|
Ivan Mahonin |
1badb6 |
|
|
Ivan Mahonin |
d38577 |
Установить заголовок окна. Эту функцию можно вызывать до вызова windowRun.
|
|
Ivan Mahonin |
1badb6 |
|
|
Ivan Mahonin |
1badb6 |
Параметры:
|
|
Ivan Mahonin |
1badb6 |
|
|
Ivan Mahonin |
1badb6 |
title — новый заголовок окна.
|
|
Ivan Mahonin |
1badb6 |
|
|
Ivan Mahonin |
d38577 |
void windowSetFrameRate(double frameRate);
|
|
Ivan Mahonin |
7a004b |
|
|
Ivan Mahonin |
d38577 |
Установить фиксированную частоту перерисовки окна. Эту функцию можно вызывать до вызова windowRun. См. также: windowSetFrameRateEx, windowSetVariableFrameRate.
|
|
Ivan Mahonin |
7a004b |
|
|
Ivan Mahonin |
7a004b |
Параметры:
|
|
Ivan Mahonin |
7a004b |
|
|
Ivan Mahonin |
7a004b |
frameRate — количество кадров в секунду, от 1 до 100.
|
|
Ivan Mahonin |
7a004b |
|
|
Ivan Mahonin |
d38577 |
void windowSetVariableFrameRate();
|
|
Ivan Mahonin |
cece70 |
|
|
Ivan Mahonin |
d38577 |
Установить переменную частоту перерисовки окна в диапазоне от 1 до 100 кадров в секунду. См. также: windowSetFrameRateEx.
|
|
Ivan Mahonin |
cece70 |
|
|
Ivan Mahonin |
d38577 |
double windowGetMinFrameRate();
|
|
Ivan Mahonin |
cece70 |
|
|
Ivan Mahonin |
d38577 |
Возвращает ранее установленную минимальную частоту перерисовки окна. См. также: windowSetFrameRateEx.
|
|
Ivan Mahonin |
cece70 |
|
|
Ivan Mahonin |
d38577 |
double windowGetMaxFrameRate();
|
|
Ivan Mahonin |
cece70 |
|
|
Ivan Mahonin |
d38577 |
Возвращает ранее установленную максимальную частоту перерисовки окна. См. также: windowSetFrameRateEx().
|
|
Ivan Mahonin |
cece70 |
|
|
Ivan Mahonin |
d38577 |
double windowSetFrameRateEx(double minFrameRate, double maxFrameRate);
|
|
Ivan Mahonin |
cece70 |
|
|
Ivan Mahonin |
cece70 |
Установить переменную частоту перерисовки окна. В этом режиме Helianthus будет стараться перерисовать окно как можно быстрее — но не быстрее заданной максимальной частоты. Реальная частота кадров будет зависеть от скорости компьютера. Если скорость компьютера и сложность рисуемой сцены не позволяют обеспечить даже минимальной частоты перерисовки, то Helianthus будет подменять реальное время имитируя для вашего приложения работу на скорости соответствующей минимальной частоте кадров — как результат происходящее на экране движение замедлится.
|
|
Ivan Mahonin |
cece70 |
|
|
Ivan Mahonin |
cece70 |
Казалось бы это очевидное поведение, но нет. В большинству программ, и, наверное, в вашей будущей программе тоже, скорость движения объектов связана со счётчиком времени. И если кадр будет рисоваться очень медленно — более секунды, то за время одного кадра движущийся объект может пройти очень большое расстояние. При этом пользователь будет лишён возможности как-то наблюдать за движением или повлиять на него. Будет лучше в этой ситуации замедлить движение объекта, но за то нарисовать несколько дополнительных кадров, показывающих промежуточные точки движения. Для этого и устанавливается минимальная частота кадров.
|
|
Ivan Mahonin |
cece70 |
|
|
Ivan Mahonin |
d38577 |
См. также: windowGetMinFrameRate, windowGetMaxFrameRate, windowSetVariableFrameRate.
|
|
Ivan Mahonin |
cece70 |
|
|
Ivan Mahonin |
cece70 |
Параметры:
|
|
Ivan Mahonin |
7a004b |
|
|
Ivan Mahonin |
cece70 |
minFrameRate — минимальная частота кадров;
|
|
Ivan Mahonin |
cece70 |
maxFrameRate — максимальная частота кадров.
|
|
Ivan Mahonin |
cece70 |
|
|
Ivan Mahonin |
d38577 |
double windowGetFrameTime();
|
|
Ivan Mahonin |
cece70 |
|
|
Ivan Mahonin |
d38577 |
Возвращает длительность отрисовки предыдущего кадра в секундах. Для первого кадра возвращается расчётное значение длительности. См. также windowSetFrameRateEx.
|
|
Ivan Mahonin |
7a004b |
|
|
Ivan Mahonin |
d38577 |
int windowGetFrameCount();
|
|
Ivan Mahonin |
7a004b |
|
|
Ivan Mahonin |
d38577 |
Возвращает количество кадров прошедшее с момента запуска программы (с момента вызова функции windowRun. См. также windowGetSeconds.
|
|
Ivan Mahonin |
7a004b |
|
|
Ivan Mahonin |
d38577 |
double windowGetSeconds();
|
|
Ivan Mahonin |
7a004b |
|
|
Ivan Mahonin |
d38577 |
Возвращает количество секунд прошедшее с момента запуска программы (с момента вызова функции windowRun. Это время может отставать от реального, если компьютер слишком медленно рисовал кадры. См. также windowGetMonotonicSeconds, windowSetFrameRateEx, windowGetFrameCount.
|
|
Ivan Mahonin |
d38577 |
|
|
Ivan Mahonin |
d38577 |
double windowGetMonotonicSeconds();
|
|
Ivan Mahonin |
d38577 |
|
|
Ivan Mahonin |
d38577 |
Возвращает количество секунд прошедшее с момента запуска программы (с момента вызова функции windowRun. Это время не зависит от частоты перерисовки кадров и мощности компьютера. См. также windowGetSeconds, windowGetMonotonicMilliseconds.
|
|
Ivan Mahonin |
d38577 |
|
|
Ivan Mahonin |
d38577 |
unsigned long long windowGetMonotonicMilliseconds();
|
|
Ivan Mahonin |
d38577 |
|
|
Ivan Mahonin |
d38577 |
Возвращает количество миллисекунд прошедшее с момента запуска программы (с момента вызова функции windowRun. Это время не зависит от частоты перерисовки кадров и мощности компьютера. См. также windowGetMonotonicSeconds.
|
|
Ivan Mahonin |
7a004b |
|
|
Ivan Mahonin |
e9aada |
const char* windowGetClipboardText();
|
|
Ivan Mahonin |
e9aada |
|
|
Ivan Mahonin |
e9aada |
Данная функция позволяет получить текст из системного буфера обмена. Это тот буфер в который помещается текст при нажатии Ctrl+C. См. также windowSetClipboardText.
|
|
Ivan Mahonin |
e9aada |
|
|
Ivan Mahonin |
e9aada |
void windowSetClipboardText(const char *text);
|
|
Ivan Mahonin |
e9aada |
|
|
Ivan Mahonin |
e9aada |
Функция помещает текст в системный буфер обмена. См. также windowSetClipboardTextEx и windowGetClipboardText.
|
|
Ivan Mahonin |
e9aada |
|
|
Ivan Mahonin |
e9aada |
Параметры:
|
|
Ivan Mahonin |
e9aada |
|
|
Ivan Mahonin |
e9aada |
text — текст, который будет скопирован в буфер.
|
|
Ivan Mahonin |
e9aada |
|
|
Ivan Mahonin |
e9aada |
void windowSetClipboardTextEx(const char *text, int len);
|
|
Ivan Mahonin |
e9aada |
|
|
Ivan Mahonin |
e9aada |
Точно так же как и windowSetClipboardText, данная функция помещает текст в системный буфер обмена. С той лишь разницей, что в данном случае в буфер помещается не весь текст, а только указанное количество его байтов. См. также windowSetClipboardText и windowGetClipboardText.
|
|
Ivan Mahonin |
e9aada |
|
|
Ivan Mahonin |
e9aada |
Параметры:
|
|
Ivan Mahonin |
e9aada |
|
|
Ivan Mahonin |
e9aada |
text — текст, который будет скопирован в буфер;
|
|
Ivan Mahonin |
e9aada |
len — количество байтов текста, которые необходимо скопировать.
|
|
Ivan Mahonin |
e9aada |
|
|
Ivan Mahonin |
7a004b |
int randomNumber(int min, int max);
|
|
Ivan Mahonin |
7a004b |
|
|
Ivan Mahonin |
d38577 |
Возвращает случайное целое число от min до max включительно. Используется стандартная функция rand() из <stdlib.h>.
|
|
Ivan Mahonin |
7a004b |
|
|
Ivan Mahonin |
7a004b |
Параметры:
|
|
Ivan Mahonin |
7a004b |
|
|
Ivan Mahonin |
7a004b |
min — минимальное значение для случайного числа;
|
|
Ivan Mahonin |
7a004b |
max — максимальное значение для случайного числа.
|
|
Ivan Mahonin |
7a004b |
|
|
Ivan Mahonin |
7a004b |
double randomFloat();
|
|
Ivan Mahonin |
7a004b |
|
|
Ivan Mahonin |
d38577 |
Возвращает случайное дробное число в диапазоне от 0 до 1. Используется стандартная функция rand() из <stdlib.h>.
|
|
Ivan Mahonin |
7a004b |
|
|
Ivan Mahonin |
cece70 |
void rotateVector(double *x, double *y, double angle);
|
|
Ivan Mahonin |
cece70 |
|
|
Ivan Mahonin |
cece70 |
Повернуть вектор (x, y) на угол angle. Функция принимает два указателя на координаты вектора, повёрнутый вектор записывается по указанным адресам вместо старого.
|
|
Ivan Mahonin |
cece70 |
|
|
Ivan Mahonin |
cece70 |
Параметры:
|
|
Ivan Mahonin |
cece70 |
|
|
Ivan Mahonin |
cece70 |
x — указатель на переменную хранящую координату x;
|
|
Ivan Mahonin |
cece70 |
y — указатель на переменную хранящую координату y;
|
|
Ivan Mahonin |
cece70 |
angle — угол поворота в градусах.
|
|
Ivan Mahonin |
cece70 |
|
|
Ivan Mahonin |
1badb6 |
Directory openDirectory(const char *path);
|
|
Ivan Mahonin |
1badb6 |
|
|
Ivan Mahonin |
1badb6 |
Если папка существует, то функция читает список файлов в папке и сохраняет этот список в памяти. Возвращает значение типа Directory, которое является адресом в памяти — указателем на описание списка внутри библиотеки Helianthus.
|
|
Ivan Mahonin |
1badb6 |
|
|
Ivan Mahonin |
1badb6 |
Если папка не существует или её по какой-то причине невозможно открыть, то функция возвращает нулевой указатель (NULL).
|
|
Ivan Mahonin |
1badb6 |
|
|
Ivan Mahonin |
d38577 |
Имена файлов можно получить при помощи функций directoryGetCount, directoryGet и directoryGetFull. После использования список нужно удалить функцией closeDirectory. См. также openDirectoryEx.
|
|
Ivan Mahonin |
1badb6 |
|
|
Ivan Mahonin |
1badb6 |
Пример:
|
|
Ivan Mahonin |
1badb6 |
|
|
Ivan Mahonin |
1badb6 |
|
|
Ivan Mahonin |
1badb6 |
Directory dir = openDirectory("my/directory");
|
|
Ivan Mahonin |
1badb6 |
if (dir) {
|
|
Ivan Mahonin |
1badb6 |
for(int i = 0; i < directoryGetCount(dir); ++i) {
|
|
Ivan Mahonin |
1badb6 |
printf("file: %s", directoryGet(dir, i));
|
|
Ivan Mahonin |
1badb6 |
}
|
|
Ivan Mahonin |
1badb6 |
closeDirectory(dir);
|
|
Ivan Mahonin |
1badb6 |
}
|
|
Ivan Mahonin |
1badb6 |
|
|
Ivan Mahonin |
1badb6 |
|
|
Ivan Mahonin |
1badb6 |
|
|
Ivan Mahonin |
1badb6 |
Параметры:
|
|
Ivan Mahonin |
1badb6 |
|
|
Ivan Mahonin |
1badb6 |
path — путь к папке.
|
|
Ivan Mahonin |
1badb6 |
|
|
Ivan Mahonin |
d38577 |
Directory openDirectoryEx(const char *path, const char *prefix, const char *suffix, int caseSensitive, int showFiles, int showDirectories);
|
|
Ivan Mahonin |
d38577 |
|
|
Ivan Mahonin |
d38577 |
Аналогично функции openDirectory, эта функция строит список имён файлов в указанной папке. Но в данном случае список фильтруется по заданным параметрам. Если папка не существует или её по какой-то причине невозможно открыть, то функция возвращает нулевой указатель (NULL). Созданный список (не NULL) после использования нужно удалить функцией closeDirectory.
|
|
Ivan Mahonin |
d38577 |
|
|
Ivan Mahonin |
d38577 |
Параметры:
|
|
Ivan Mahonin |
d38577 |
|
|
Ivan Mahonin |
d38577 |
path — путь к папке;
|
|
Ivan Mahonin |
d38577 |
prefix — включать только имена начинающиеся с указанной строки;
|
|
Ivan Mahonin |
d38577 |
suffix — включать только имена оканчивающиеся на указанную строку;
|
|
Ivan Mahonin |
d38577 |
caseSensitive — если TRUE, то функция будет отличать большие и маленькие буквы, в противном случае заглавное и строчное написание будет считаться одним и тем же символом;
|
|
Ivan Mahonin |
d38577 |
showFiles — если TRUE, то обычные файлы (не папки) будут включены в список;
|
|
Ivan Mahonin |
d38577 |
showDirectories — если TRUE, то папки будут включены в список.
|
|
Ivan Mahonin |
d38577 |
|
|
Ivan Mahonin |
1badb6 |
void closeDirectory(Directory directory);
|
|
Ivan Mahonin |
1badb6 |
|
|
Ivan Mahonin |
1badb6 |
Удаляет ранее загруженный список файлов из памяти. См. также openDirectory.
|
|
Ivan Mahonin |
1badb6 |
|
|
Ivan Mahonin |
1badb6 |
Важно: Скорее всего у вас в программе останется переменная в которой хранился указатель на список. Этот указатель станет недействителен — будет указывать на неопределённую область памяти — не на список файлов. Вы можете занести в эту переменную другую список файлов, но использовать старое значение переменной больше нельзя это приведёт к ошибкам и непредсказуемому поведению программы.
|
|
Ivan Mahonin |
1badb6 |
|
|
Ivan Mahonin |
1badb6 |
int directoryGetCount(Directory directory);
|
|
Ivan Mahonin |
1badb6 |
|
|
Ivan Mahonin |
1badb6 |
Возвращает количество файлов в списке. См. также openDirectory и directoryGet.
|
|
Ivan Mahonin |
1badb6 |
|
|
Ivan Mahonin |
1badb6 |
const char* directoryGet(Directory directory, int i);
|
|
Ivan Mahonin |
1badb6 |
|
|
Ivan Mahonin |
d38577 |
Возвращает имя файла с указанным номером из ранее открытого списка. См. также openDirectory и directoryGetFull.
|
|
Ivan Mahonin |
d38577 |
|
|
Ivan Mahonin |
d38577 |
Параметры:
|
|
Ivan Mahonin |
d38577 |
|
|
Ivan Mahonin |
d38577 |
i — номер файла в списке.
|
|
Ivan Mahonin |
d38577 |
|
|
Ivan Mahonin |
d38577 |
const char* directoryGetFull(Directory directory, int i);
|
|
Ivan Mahonin |
d38577 |
|
|
Ivan Mahonin |
d38577 |
Возвращает путь к файлу (путь к папке, указанный при открытии + имя файла) с указанным номером из ранее открытого списка. См. также openDirectory и directoryGet.
|
|
Ivan Mahonin |
1badb6 |
|
|
Ivan Mahonin |
1badb6 |
Параметры:
|
|
Ivan Mahonin |
1badb6 |
|
|
Ivan Mahonin |
1badb6 |
i — номер файла в списке.
|
|
Ivan Mahonin |
1badb6 |
|
|
Ivan Mahonin |
1badb6 |
int fileExists(const char *path);
|
|
Ivan Mahonin |
1badb6 |
|
|
Ivan Mahonin |
1badb6 |
Возвращает TRUE (число 1) если файл по заданному пути существует, иначе возвращает FALSE (число 0).
|
|
Ivan Mahonin |
1badb6 |
|
|
Ivan Mahonin |
1badb6 |
Параметры:
|
|
Ivan Mahonin |
1badb6 |
|
|
Ivan Mahonin |
1badb6 |
path — путь к проверяемому файлу.
|
|
Ivan Mahonin |
1badb6 |
|
|
Ivan Mahonin |
1badb6 |
int directoryExists(const char *path);
|
|
Ivan Mahonin |
1badb6 |
|
|
Ivan Mahonin |
1badb6 |
Возвращает TRUE (число 1) если папке по заданному пути существует, иначе возвращает FALSE (число 0).
|
|
Ivan Mahonin |
1badb6 |
|
|
Ivan Mahonin |
1badb6 |
Параметры:
|
|
Ivan Mahonin |
1badb6 |
|
|
Ivan Mahonin |
1badb6 |
path — путь к проверяемой папке.
|
|
Ivan Mahonin |
1badb6 |
|
|
Ivan Mahonin |
1badb6 |
void messageBox(const char *message);
|
|
Ivan Mahonin |
1badb6 |
|
|
Ivan Mahonin |
1badb6 |
Показать окно с текстовым сообщением. Работа программы будет приостановлена, до тех пор пока пользователь не закроет окно (нажав на кнопку OK, например).
|
|
Ivan Mahonin |
1badb6 |
|
|
Ivan Mahonin |
1badb6 |
Параметры:
|
|
Ivan Mahonin |
1badb6 |
|
|
Ivan Mahonin |
1badb6 |
message — текстовое сообщение.
|
|
Ivan Mahonin |
1badb6 |
|
|
Ivan Mahonin |
cece70 |
int questionBox(const char *question, const char *answer0, const char *answer1);
|
|
Ivan Mahonin |
cece70 |
|
|
Ivan Mahonin |
cece70 |
Функция показывает на экране окно вопроса с двумя вариантами ответа. Работа программы будет приостановлена до тех пор пока пользователь не выберет один из вариантов или не закроет окно вопроса (что равносильно выбору варианта номер 0). Функция возвращает номер выбранного ответа — 0 или 1. См. также: messageBox, questionBox3.
|
|
Ivan Mahonin |
cece70 |
|
|
Ivan Mahonin |
cece70 |
Параметры:
|
|
Ivan Mahonin |
cece70 |
|
|
Ivan Mahonin |
cece70 |
question — текст задаваемого вопроса;
|
|
Ivan Mahonin |
cece70 |
answer0 — такст варианта ответа номер 0, этот вариант выбирается если пользователь закрывает окно вопроса или нажимает клавишу Esc. Удобно использовать с текстом «Нет» или «Отмена»;
|
|
Ivan Mahonin |
cece70 |
answer1 — текст варианта ответа номер 1, этот вариант выбирается по-умолчанию если пользователь нажимает клавишу Enter. Удобно использовать с текстом «Да» или «OK».
|
|
Ivan Mahonin |
cece70 |
|
|
Ivan Mahonin |
cece70 |
int questionBox3(const char *question, const char *answer0, const char *answer1, const char *answer2);
|
|
Ivan Mahonin |
cece70 |
|
|
Ivan Mahonin |
cece70 |
Функция показывает на экране окно вопроса с тремя вариантами ответа. Работа программы будет приостановлена до тех пор пока пользователь не выберет один из вариантов или не закроет окно вопроса (что равносильно выбору варианта номер 0). Функция возвращает номер выбранного ответа — 0, 1 или 2. См. также: messageBox, questionBox.
|
|
Ivan Mahonin |
cece70 |
|
|
Ivan Mahonin |
cece70 |
Параметры:
|
|
Ivan Mahonin |
cece70 |
|
|
Ivan Mahonin |
cece70 |
question — текст задаваемого вопроса;
|
|
Ivan Mahonin |
cece70 |
answer0 — такст варианта ответа номер 0, этот вариант выбирается если пользователь закрывает окно вопроса или нажимает клавишу Esc. Удобно использовать с текстом «Отмена» в наборе Да/Нет/Отмена;
|
|
Ivan Mahonin |
cece70 |
answer1 — такст варианта ответа номер 1. Удобно использовать с текстом «Нет» в наборе Да/Нет/Отмена;
|
|
Ivan Mahonin |
cece70 |
answer2 — текст варианта ответа номер 2, этот вариант выбирается по-умолчанию если пользователь нажимает клавишу Enter. Удобно использовать с текстом «Да» в наборе Да/Нет/Отмена.
|
|
Ivan Mahonin |
cece70 |
|
|
Ivan Mahonin |
cece70 |
int askText(const char *question, char *answer, int maxAnswerSize);
|
|
Ivan Mahonin |
1badb6 |
|
|
Ivan Mahonin |
cece70 |
Создаёт окно для ввода текста. Пользователю будет предоставлена для редактирования строка текста из параметра answer. Работа программы будет приостановлена, до тех пор пока пользователь не закончит ввод и не закроет окно. Возвращает TRUE (число 1) при успешном вводе и FALSE (число 0) если пользователь отменил ввод. См. также askTextEx.
|
|
Ivan Mahonin |
1badb6 |
|
|
Ivan Mahonin |
1badb6 |
Параметры:
|
|
Ivan Mahonin |
1badb6 |
|
|
Ivan Mahonin |
1badb6 |
question — сообщение для пользователя;
|
|
Ivan Mahonin |
1badb6 |
answer — указатель на строку куда будет сохранён ответ, также этот параметр используется чтобы задать начальное значение для текстового поля;
|
|
Ivan Mahonin |
1badb6 |
maxAnswerSize — максимальный размер для строки ответа в байтах включая ограничивающий нулевой байт.
|
|
Ivan Mahonin |
1badb6 |
|
|
Ivan Mahonin |
d38577 |
int askTextf(const char *question, const char *format, ...);
|
|
Ivan Mahonin |
d38577 |
|
|
Ivan Mahonin |
d38577 |
Создаёт окно для ввода однострочного текста. Работа программы будет приостановлена, до тех пор пока пользователь не закончит ввод и не закроет окно. Введённый текст будет преобразован в переменные в соответствие со строкой форматирования (format), точно также как это делает стандартная функция scanf из модуля <stdio.h>. Возвращает количество успешно прочитанных аргументов при успешном вводе или стандартную константу EOF (обычно это -1) если пользователь отменил ввод. См. также askText.
|
|
Ivan Mahonin |
d38577 |
|
|
Ivan Mahonin |
d38577 |
Параметры:
|
|
Ivan Mahonin |
d38577 |
|
|
Ivan Mahonin |
d38577 |
question — сообщение для пользователя;
|
|
Ivan Mahonin |
d38577 |
format — строка форматирования.
|
|
Ivan Mahonin |
d38577 |
|
|
Ivan Mahonin |
cece70 |
int askTextEx(const char *question, char *answer, int maxAnswerSize, int multiline, int password);
|
|
Ivan Mahonin |
1badb6 |
|
|
Ivan Mahonin |
cece70 |
Создаёт окно для ввода текста. Пользователю будет предоставлен для редактирования текст из параметра answer. Позволяет работать с многострочным текстом и прятать вводимые символы (для ввода пароля). Работа программы будет приостановлена, до тех пор пока пользователь не закончит ввод и не закроет окно. Возвращает TRUE (число 1) при успешном вводе и FALSE (число 0) если пользователь отменил ввод. См. также askText.
|
|
Ivan Mahonin |
1badb6 |
|
|
Ivan Mahonin |
1badb6 |
Параметры:
|
|
Ivan Mahonin |
1badb6 |
|
|
Ivan Mahonin |
1badb6 |
question — сообщение для пользователя;
|
|
Ivan Mahonin |
1badb6 |
answer — указатель на строку куда будет сохранён ответ, также этот параметр используется чтобы задать начальное значение для текстового поля;
|
|
Ivan Mahonin |
1badb6 |
maxAnswerSize — максимальный размер для строки ответа в байтах включая ограничивающий нулевой байт;
|
|
Ivan Mahonin |
1badb6 |
multiline — если TRUE, то будет отображаться поле для ввода многострочного текста;
|
|
Ivan Mahonin |
1badb6 |
password — если TRUE, то вводимые символы будут спрятаны (можно использовать для ввода паролей).
|
|
Ivan Mahonin |
1badb6 |
|
|
Ivan Mahonin |
7a004b |
|
|
Ivan Mahonin |
7a004b |
</body>
|
|
Ivan Mahonin |
7a004b |
</html>
|