|
PixilangV3Manual_RU
Что такое PixilangPixilang - кросс-платформенный язык программирования для небольших графических и звуковых приложений. Примеры применения: арт-эксперименты, демки (demoscene), синтезаторы, игры. Ключевые особенности:
ОсновыВ основе Pixilang - контейнеры (или pixi-контейнеры, как их иногда называют) и переменные. Что такое контейнер? Если в двух словах, то это двухмерный массив, таблица из X колонок и Y строк. Каждая ячейка этой таблицы - число определенного формата. Формат задан один на весь контейнер. Например, ячейки могут хранить цвета пикселей, тогда контейнер превращается в картинку. Контейнер с таким же успехом может быть строкой текста, куском звука и т.д. Если вы знакомы с другими языками программирования, то считайте контейнер массивом, состоящим из (X*Y) ячеек. Каждый контейнер после создания имеет свой порядковый номер. Переменная - имя ячейки памяти, в которой хранится одно знаковое целое 32-битное число (например, 25) или 32-битное число с плавающей запятой (например, 33.44). Локальные переменные (с символом $ перед именем) доступны только в рамках одной функции, в которой эти переменные определены. Глобальные переменные (без символа $) доступны в любом месте программы. Простейшие примеры применения контейнеров и переменных: x = new( 4 ) //Создаем контейнер из 4х пикселей. Сохраняем номер контейнера в переменной x. x[ 2 ] = WHITE //Присваиваем пикселю номер 2 белый цвет. remove( x ) //Удаляем контейнер str = "Hello" //"Hello" - это контейнер, состоящий из пяти букв. //Подобные контейнеры-строки создаются автоматически на этапе компиляции программы. //Удалять их вручную так, как это сделано в предыдущем примере, не надо. //Контейнеру со строкой "Hello" автоматически присвоится порядковый номер. //Например, это будет номер 4. //Тогда код str = "Hello" будет равноценен коду str = 4. str[ 0 ] = 'h' //Меняем самую первую букву в строке. Было - 'H'. Станет - 'h'. a = 4 //Глобальная переменная
fn function()
{
$k = 2 //Локальная переменная
function2 = {
//Определяем еще одну функцию
$x = 899.334 //Локальная переменная
//В этом месте $k недоступна, т.к. находится в другой функции
}
//В этом месте $x недоступна
}
//В этом месте $k и $x недоступныИмена файлов и директорийНиже приведены примеры, показывающие основные правила оформления имен файлов и директорий. //Файл спрятан в нескольких директориях относительно текущего местоположения пикси-программы: "folder1/folder2/folder3/prog.pixi" //Файл лежит в текущей рабочей папке Pixilang // для iOS: documents; // для WinCE: корень файловой системы (/); // для остальных систем: в той же самой папке, в которой лежит pixilang или pixilang.exe; "1:/prog.pixi" //Файл лежит в директории пользователя (например, в Linux это будет /home/alex): "2:/prog.pixi" //Файл лежит во временной директории: "3:/prog.pixi" Встроенные операторыРассмотрим операторы на конкретных примерах. //Условные операторы if, else
if a == b
{ /*Код в этом месте выполняется, если a равно b*/ }
else
{ /*Код в этом месте выполняется в противном случае (a не равно b)*/ }
if x == 4 && y == 2
{ /*Код в этом месте выполняется, если x равно 4 и y равно 2*/ }
//Оператор цикла: while
a = 0
while( a < 3 )
{
//Код в этом месте выполняется, если a меньше 3
a + 3
}
//Операторы перехода: go, goto
m1:
a + 1
goto m1 //Переход на метку m1
//Операторы остановки: halt, stop
halt //В этом месте программа останавливается
//Оператор подключения: include
include "prog2.txt" //В этом месте подключаем код из файла prog2.txt
//Оператор определения функции: fn
fn fff( $x, $y ) //Определяем функцию fff с параметрами $x и $y
{
//Код функции fff
ret //Простой выход из функции
ret( 4 ) //Выход из функции с возвращением значения 4
}Ниже приведена таблица математических операторов. Приоритет 0 - наивысший, такие операции будут выполняться в первую очередь.
Встроенные константыТипы контейнеров
Размеры
Типы файлов
Цвета
ВыравниваниеЭти константы используются, например, при выводе текста. Их можно комбинировать при помощи побитовой операции ИЛИ (|). Отсутствие TOP и BOTTOM обозначает вертикальное выравнивание по центру. Отсутствие LEFT и RIGHT обозначает горизонтальное выравнивание по центру.
Типы эффектовТипы эффектов для функции effector():
ЗвукФлаги для функции set_audio_callback():
MIDIФлаги для функций midi_get_device(), midi_open_port():
События
Номера ячеек (полей) в контейнере EVT:
Математические константы
Операции обработки данныхДля функции op_cn():
Для функций op_cn(), op_cc():
Для функции op_cc():
Для функции op_ccn():
Для функции generator():
Sampler
Номера ячеек (полей) в контейнере с информацией о сэмпле:
Флаги:
Константы для нативных вызовов
Константы для совместимости с POSIX
Разное
Встроенные глобальные переменные
Зарезервированные свойства контейнераЭти свойства могут быть созданы для контейнера после его загрузки командой load():
Встроенные функцииРабота с контейнерамиnewСоздать новый контейнер с данными. Сразу после создания контейнер может быть заполнен неопределенными значениями. Прежде чем читать из этого контейнера, его следует очистить функцией clean, или заполнить полезными данными. Параметры ( xsize, ysize, type )
Возвращаемое значение Номер контейнера или -1, если произошла ошибка при создании. Примеры p = new() //Создать контейнер 1x1. Тип = пиксели. p = new( 4 ) //Создать контейнер 4x1. Тип = пиксели. p = new( 4, 4 ) //Создать контейнер 4x4. Тип = пиксели. p = new( 4, 4, FLOAT32 ) //Создать контейнер 4x1. Тип = 32-битные числа с плавающей запятой. removeУдалить контейнер. Параметры ( pixi )
Примеры p = new() //Создаем новый контейнер remove( p ) //Удаляем его resizeИзменить параметры контейнера. Параметры ( pixi, xsize, ysize, type )
-1 в любом из параметров будет означать, что данный параметр контейнера остается прежним. Возвращаемое значение 0 - успешно; 1 - ошибка. Примеры p = new() //Создаем новый контейнер 1x1 resize( p, 32 ) //Изменяем его размер на 32x1 remove( p ) //Удаляем контейнер convert_typeПреобразовать значения контейнера к другому типу. Параметры ( pixi, new_type ) cleanОчистить контейнер (заполнить нулями или указанным значением). Параметры ( dest_cont, v, offset, count )
Примеры p = new() //Создаем новый контейнер clean( p ) //Очищаем его remove( p ) //И удаляем cloneСоздать точную копию контейнера. Параметры ( pixi )
Возвращаемое значение Номер нового контейнера или -1, если произошла ошибка при создании. copyСкопировать данные из контейнера src в контейнер dest. Параметры ( dest, src, dest_offset, src_offset, count, dest_step, src_step )
Примеры //Скопировать все элементы из контейнера img1 в img2: copy( img2, img1 ) //Скопировать элементы 8...200 из контейнера img1 в img2: copy( img2, img1, 8, 8, 200 ) //Скопировать 200 элементов начиная с 8 из контейнера img1 в img2 с шагом 2: copy( img2, img1, 8, 8, 200, 2, 2 ) Возвращаемое значение Количество элементов, которое удалось успешно скопировать. get_sizeПолучить размер контейнера (кол-во элементов). Параметры ( pixi )
Возвращаемое значение Размер контейнера (кол-во элементов). Примеры p = new( 8, 8 ) //Создаем новый контейнер 8x8 size = get_size( p ) //Записываем его размер в переменную size remove( p ) //Удаляем контейнер get_xsizeПолучить ширину контейнера. Параметры ( pixi )
Возвращаемое значение Ширина контейнера. Примеры p = new( 8, 8 ) //Создаем новый контейнер 8x8 xsize = get_xsize( p ) //Записываем его ширину в переменную xsize remove( p ) //Удаляем контейнер get_ysizeПолучить высоту контейнера. Параметры ( pixi )
Возвращаемое значение Высота контейнера. Примеры p = new( 8, 8 ) //Создаем новый контейнер 8x8 ysize = get_xsize( p ) //Записываем его высоту в переменную ysize remove( p ) //Удаляем контейнер get_esizeПолучить размер элемента контейнера (в байтах). Параметры ( pixi )
Возвращаемое значение Размер элемента контейнера (в байтах). Примеры p = new( 8, 8, INT16 ) //Создаем новый контейнер 8x8; тип элемента = INT16 esize = get_esize( p ) //Записываем размер его элемента в переменную esize //Теперь в переменной esize находится число 2 (т.к. 16 бит - это два байта). remove( p ) //Удаляем контейнер get_typeПолучить тип элемента контейнера. Параметры ( pixi )
Возвращаемое значение Тип элемента контейнера. Примеры p = new( 8, 8, INT32 ) //Создаем новый контейнер 8x8; тип элемента = INT32 type = get_type( p ) //Записываем тип его элемента в переменную type //Теперь в переменной type находится константа INT32. remove( p ) //Удаляем контейнер get_propПолучить значение свойства контейнера. У каждого контейнера может быть неограниченное количество свойств. Параметры ( pixi, prop_name, def_prop )
Возвращаемое значение Числовое значение указанного свойства контейнера. set_propУстановить значение свойства контейнера. Параметры ( pixi, prop_name, value )
Примеры p = new( 8, 8, INT32 ) //Создаем новый контейнер 8x8; тип элемента = INT32 set_prop( p, "speed", 777 ) //Добавляем свойство "speed" у созданного контейнера v = get_prop( p, "speed" ) //Читаем значение этого свойства //Теперь в переменной v лежит число 777 remove_propsУдалить все свойства контейнера. Параметры ( pixi ) Текстовые строкиnum_to_strАльтернативные имена: num2str. Конвертировать число из переменной в текстовую строку (в контейнер). Параметры ( str, num )
Примеры v = 45.64 s = "" num_to_str( s, v ) fputs( s ) fputs( "\n" ) str_to_numАльтернативные имена: str2num. Конвертировать текста (из контейнера) в число. Параметры ( str )
Возвращаемое значение Числовое значение. Примеры a = str_to_num( "-55.44" ) b = a + 4 Поддержка различных форматов файловloadЗагрузить контейнер из файла. Примеры c = load( "smile.jpg" ) saveСохранить контейнер в указанном формате. Параметры ( pixi, filename, format, quality )
Примеры c = load( "smile.jpg" ) save( c, "smile.png", FORMAT_PNG ) save( c, "smile2.jpg", FORMAT_JPEG ) //Quality = 85 (default) save( c, "smile3.jpg", FORMAT_JPEG, 100 ) //Quality = 100 ГрафикаframeВывести содержимое рабочего экрана на дисплей и подождать указанное количество миллисекунд. Параметры ( delay, x, y, xsize, ysize )
set_screenСделать указанный контейнер текущим рабочим экраном. Параметры ( pixi )
get_screenПолучить номер контейнера, который в данный момент является рабочим экраном. Возвращаемое значение Номер контейнера, который является рабочим экраном. set_zbufПараметры ( zbuf_container ) Указать контейнер, который будет буфером глубины (Z-Buffer) при рисовании трехмерных объектов. Подробнее про Z-буферизацию можно почитать здесь. Контейнер должен иметь тип INT32 и по размерам совпадать с размером текущего экрана. get_zbufget_colorПолучить значение цвета с заданными характеристиками r,g,b (красный,зеленый,синий). Параметры ( red, green, blue )
Возвращаемое значение Значение цвета. Формат этого значения может меняться в зависимости от версии Pixilang. Например, если Pixilang скомпилирован для устройств с 8-битным дисплеем, то значение цвета будет в диапазоне от 0 до 255. get_redПолучить интенсивность красной составляющей в указанном цвете. Параметры ( color )
Возвращаемое значение Интенсивность красной составляющей. От 0 до 255. get_greenПолучить интенсивность зеленой составляющей в указанном цвете. Параметры ( color )
Возвращаемое значение Интенсивность зеленой составляющей. От 0 до 255. get_blueПолучить интенсивность синей составляющей в указанном цвете. Параметры ( color )
Возвращаемое значение Интенсивность синей составляющей. От 0 до 255. get_blendПолучить промежуточное значение цвета между двумя известными. Параметры ( c1, c2, v )
Возвращаемое значение Промежуточное значение цвета. transpУстановить прозрачность для всех последующих функций. Параметры ( t )
get_transpПолучить текущее значение прозрачности. clearОчистить текущий рабочий экран заданным цветом (или черным, если цвет не задан). Параметры ( color )
dotНарисовать точку. Параметры ( x, y, color )
dot3dНарисовать точку в 3D. Параметры ( x, y, z, color ) get_dotПолучить цвет в указанной точке. Параметры ( x, y )
Возвращаемое значение Значение цвета в указанной точке. get_dot3dПолучить цвет в указанной точке. Параметры ( x, y, z ) Возвращаемое значение Значение цвета в указанной точке. lineНарисовать линию. Параметры ( x1, y1, x2, y2, color ) line3dНарисовать линию в 3D. Параметры ( x1, y1, z1, x2, y2, z2, color ) boxНарисовать прямоугольник. Параметры ( x, y, xsize, ysize, color ) fboxНарисовать закрашенный прямоугольник. Параметры ( x, y, xsize, ysize, color ) pixiВывести на экран контейнер с картинкой. Параметры ( pixi_cont, x, y, color, xscale, yscale, src_x, src_y, src_xsize, src_ysize )
Примеры pixi( image ) pixi( image, 10, 20 ) pixi( image, 30, 40, GREEN ) pixi( image, 90, 20, GREEN, 0.5, 0.5 ) set_key_colorУстановить/сбросить цвет прозрачности у контейнера. Параметры ( pixi, color )
get_key_colorset_alphaПривязать к контейнеру другой контейнер с альфа-каналом. Альфа-канал должен иметь тип INT8. Параметры ( pixi, alpha )
get_alphaВывести текст на экран. Параметры ( text, x, y, color, align )
Примеры print( "Hello Pixi!", 0, 0 ) //цвет - белый; выравнивание - по центру; print( "line1\nline2", 50, 50, RED ) //выравнивание - по центру; print( "line1\nline2", -50, 50, RED, TOP | LEFT ) //выравнивание - по верхнему левому краю; get_text_xsizeПараметр ( text, align ) Возвращаемое значение Ширина текста в пикселях. get_text_ysizeПараметр ( text, align ) Возвращаемое значение Высота текста в пикселях. set_fontПараметры ( first_char_utf32, font_image, xchars, ychars ) get_fontПараметры ( char_utf32 ) Возвращаемое значение Номер контейнера, в котором находится картинка шрифта для указанного символа. effectorНаложить эффект на выделенный участок экрана. На координаты этой функции не действует трансформация. Параметры ( type, power, color, x, y, xsize, ysize, x_step, y_step ) Анимация контейнеровpack_frameЗапаковать текущее содержимое контейнера в кадр. Номер кадра должен быть в свойстве "frame" этого контейнера. Параметры ( pixi ) unpack_frameРаспаковать кадр в текущее содержимое контейнера. Номер кадра должен быть в свойстве "frame" этого контейнера. Параметры ( pixi ) create_animСоздать анимацию - скрытую область контейнера, в которой будут располагаться запакованные кадры. Параметры ( pixi ) remove_animУдалить анимацию в указанном контейнере. Параметры ( pixi ) clone_frameПродублировать текущий кадр в указанном контейнере. Номер кадра должен быть в свойстве "frame" этого контейнера. Параметры ( pixi ) remove_frameУдалить текущий кадр в указанном контейнере. Номер кадра должен быть в свойстве "frame" этого контейнера. Параметры ( pixi ) playВключить режим авто-проигрывания для указанного контейнера. В этом режиме нужные кадры будут распаковываться автоматически во время вызова функции pixi(). Параметры ( pixi ) stopВыключить режим авто-проигрывания для указанного контейнера. Параметры ( pixi ) ТрансформацияТрансформация системы координат. t_resetСброс (очистка текущей матрицы трансформации). t_rotateПараметры ( angle, x, y, z ) t_translateПараметры ( x, y, z ) t_scaleПараметры ( x, y, z ) t_get_matrixПолучить текущую матрицу трансформации (4x4 FLOAT). Параметры ( matrix_container ) t_set_matrixУстановить текущую матрицу трансформации (4x4 FLOAT). Параметры ( matrix_container ) t_mul_matrixCurrent matrix = current matrix * matrix_container Параметры ( matrix_container ) t_pointПересчитать координаты точки с учетом текущей матрицы трансформации. Параметры ( point_coordinates )
Звукset_audio_callbackЗадать функцию, которая будет генерировать звуковой поток. Параметры ( callback, userdata, freq, format, channels, flags ) Примеры fn audio_callback( $stream, $userdata, $channels, $frames, $time )
{
generator( OP_SIN, $channels[ 0 ], 0, 32767 / 2, 0.1, 0 ) //Левый канал
generator( OP_SIN, $channels[ 1 ], 0, 32767 / 2, 0.1, 0 ) //Правый канал
ret(1)
}
//Запустить звук:
set_audio_callback( audio_callback, 0, 22050, INT16, 2, AUDIO_FLAG_INTERP2 )//Остановить звук: set_audio_callback( -1 ) enable_audio_inputПараметры ( disable_enable ) get_note_freqПараметры ( note, finetune )
Возвращаемое значение Частота ноты в Герцах. MIDImidi_open_clientПараметры ( client_name ) Возвращаемое значение ID клиента. midi_close_clientПараметры ( client_id ) midi_get_deviceПараметры ( client_id, device_num, flags ) Возвращаемое значение Имя устройства под номером device_num, или -1, если нет такого устройства. midi_open_portПараметры ( client_id, port_name, device_name, flags ) Возвращаемое значение Номер открытого порта (port ID). midi_reopen_portПараметры ( client_id, port_id ) midi_close_portПараметры ( client_id, port_id ) midi_get_eventПараметры ( client_id, port_id, data_cont ) Возвращаемое значение Размер (в байтах) текущего MIDI события. midi_get_event_timeПараметры ( client_id, port_id ) Возвращаемое значение Время (в системных тиках) текущего MIDI события midi_next_eventПерейти на следующее сообщения в очереди. Параметры ( client_id, port_id ) midi_send_eventПараметры ( client_id, port_id, data_cont, data_size, t ) Времяstart_timerЗапустить таймер. Параметры ( timer_num )
get_timerПолучить значение таймера в миллисекундах. Параметры ( timer_num )
Возвращаемое значение 32-битное значение таймера в миллисекундах. get_yearget_monthget_dayget_hoursget_minutesget_secondsget_ticksПолучить значение системного 32-битного таймера высокого разрешения. Единица измерения - 1 тик. get_tpsПолучить количество системных тиков в секунду. sleepЗаснуть на указанный промежуток времени. Параметры ( delay )
Событияget_eventПолучить очередное событие от системы. Возвращаемое значение 0 - нет новых событий. 1 - очередное событие получено и оно находится в контейнере EVT. set_quit_actionУстановить поведение программы при получении события EVT_QUIT. Параметры ( action )
Возможные значения параметра action:
Многопоточностьthread_createСоздать новый поток выполнения, в котором сразу после создания будет запущена функция thread_function( $user_data ) Параметры ( thread_function, user_data ) Возвращаемое значение Номер потока или -1 в случае ошибки. thread_destroyЗакрыть поток выполнения. Параметры ( thread_num, timeout_ms ) Возвращаемое значение В случае успешного закрытия потока возвращается 0. mutex_createПримеры new_mutex = mutex_create() mutex_lock( new_mutex ) mutex_unlock( new_mutex ) mutex_destroy( new_mutex ) mutex_destroymutex_lockmutex_trylockmutex_unlockМатематикаacosacoshasinasinhatanatanhceilcoscoshexpexp2expm1absfloormodloglog2log10powsinsinhsqrttantanhrandrand_seedОбработка данныхПримечание: функции обработки данных не работают с контейнерами динамического типа. op_cnВыполнить операцию обработки данных. Операнды: 1) номер контейнера (c); 2) числовое значение (n). Параметры ( opcode, pixi, num, x, y, xsize, ysize )
Примеры //Прибавить число 32 к каждому элементу контейнера img: op_cn( OP_ADD, img, 32 ) //Прибавить число 32 к элементам 128...256: op_cn( OP_ADD, img, 32, 128, 128 ) //Прибавить число 32 к элементам в регионе (8,8,32,32): op_cn( OP_ADD, img, 32, 8, 8, 32, 32 ) op_ccВыполнить операцию обработки данных. Операнды: 1) номер контейнера (c); 2) номер контейнера (c). Как работает: для каждого элемента из контейнера pixi1: pixi1[ i ] = pixi1[ i ] OP pixi2[ i ] Параметры ( opcode, pixi1, pixi2 ) - для всей области контейнера pixi1 Параметры ( opcode, pixi1, pixi2, dest_x, src_x, xsize ) - область задана в 1D координатах Параметры ( opcode, pixi1, pixi2, dest_x, dest_y, src_x, src_y, xsize, ysize ) - область задана в 2D координатах op_ccnВыполнить операцию обработки данных. Операнды: 1) номер контейнера (c); 2) номер контейнера (c); 3) числовое значение (n). Как работает: для каждого элемента из контейнера pixi1: pixi1[ i ] = pixi1[ i ] OP pixi2[ i ] / num Параметры ( opcode, pixi1, pixi2, num ) - для всей области контейнера pixi1 Параметры ( opcode, pixi1, pixi2, num, dest_x, src_x, xsize ) - область задана в 1D координатах Параметры ( opcode, pixi1, pixi2, num, dest_x, dest_y, src_x, src_y, xsize, ysize ) - область задана в 2D координатах generatorГенератор сигнала. Параметры ( opcode, pixi, phase, amplitude, delta_x, delta_y, x, y, xsize, ysize )
Примеры //Сгенерировать синусоиду в контейнер img: generator( OP_SIN, img, 0, 1, 0.1, 0.1 ) //Сгенерировать синусоиду по более быстрому, но менее точному алгоритму: generator( OP_SIN8, img, 0, 1, 0.1, 0.1 ) //Сгенерировать синусоиду в элементы 8...128 контейнера img: generator( OP_SIN, img, 0, 1, 0.1, 0.1, 8, 128 ) //Сгенерировать синусоиду в регион (8,8,32,32) контейнера img: generator( OP_SIN, img, 0, 1, 0.1, 0.1, 8, 8, 32, 32 ) samplerПараметры ( sample_info ) Примеры sample_data = new( 256, 1, INT16 ) //создаем 16-битный сэмпл sample_info = new( SMP_INFO_SIZE, 1, INT32 ) //создаем контейнер для сэмплера clean( sample_info ) sample_info[ SMP_DEST ] = buffer //Контейнер, в который будем записывать sample_info[ SMP_DEST_OFF ] = 0 //Смещение в контейнере sample_info[ SMP_DEST_LEN ] = 256 //Размер области, которую будем заполнять sample_info[ SMP_SRC ] = sample_data sample_info[ SMP_SRC_OFF_H ] = 0 //Смещение сэмпла (левая часть числа с фиксированной точкой) sample_info[ SMP_SRC_OFF_L ] = 0 //Смещение сэмпла (правая часть числа с фиксированной точкой, от 0 до 65535) sample_info[ SMP_LOOP ] = 0 //Начало лупа (повторяемого участка сэмпла) sample_info[ SMP_LOOP_LEN ] = 128 //Длина лупа (или 0, если луп отключен) sample_info[ SMP_VOL1 ] = 0 //Начальная громкость sample_info[ SMP_VOL2 ] = 32768 //Конечная громкость (32768 = 1.0) sample_info[ SMP_DELTA ] = ( 1 << 16 ) //Дельта (скорость проигрывания); fixed point (real_value * 65536) sample_info[ SMP_FLAGS ] = SMP_FLAG_INTERP4 | SMP_FLAG_PINGPONG //Кубическая сплайновая интерполяция и луп в режиме ping-pong sampler( sample_info ) //Записываем сэмпл с выбранными параметрами в контейнер buffer envelope2pПрименить огибающую (из двух точек) усиления и DC-смещения к выделенной области контейнера. Без ограничения (защиты от переполнения). Параметры ( data_cont, v1, v2, offset, size, dc_offset1, dc_offset2 )
fftВыполнить быстрое преобразование Фурье. Параметры ( inverse, im, re, size ) replace_valuesПодстановка значений контейнера. Типы контейнеров dest и values должны быть одинаковыми. Для каждого элемента контейнера dest будет выполняться следующее действие: dest[ i ] = values[ (unsigned)src[ i ] ] Параметры ( dest, src, values )
Примеры //Преобразовать 8-битную картинку в формат пикселей текущего экрана: //src - это, например, контейнер основного экрана; //img8 - контейнер с 8-битной картинкой (256 цветов); //palette - контейнер с палитрой из 256 цветов; replace_values( scr, img8, palette ) Диалогиfile_dialogОткрыть диалоговое окно выбора файла. Параметры ( dialog_name, mask, id, default_name )
Возвращаемое значение Номер контейнера с именем выбранного файла, или -1, если файл не выбран. Контейнер удаляется вручную. Нативный кодdlopenОткрыть динамически подключаемую библиотеку (например, .DLL для Windows, или .SO для Linux). Параметры ( lib_file_name ) Возвращаемое значение ID открытой библиотеки, или -1 в случае ошибки. dlcloseЗакрыть динамически подключаемую библиотеку. Параметры ( lib_id ) dlsymПолучить ID символа (функции или переменной) из динамической библиотеки. Параметры ( lib_id, symbol_name, format, calling_convention )
Возвращаемое значение ID символа, или -1 в случае ошибки. dlcallВызвать функцию из динамической библиотеки. Параметры ( lib_id, symbol_id, optional_function_parameters ) Системные функции (совместимость с POSIX)fopenПараметры ( filename, mode ) Примеры f = fopen( "/tmp/data.txt", "rb" ) //Открываем файл data.txt для чтения fclose( f ) //...и закрываем его. fcloseПараметры ( stream ) Примеры f = fopen( "/tmp/data.txt", "rb" ) //Открываем файл data.txt для чтения. c = fgetc( f ) //Получаем байт из этого файла. fclose( f ) //Закрываем файл. fputcПараметры ( c, stream ) Примеры f = fopen( "/tmp/data.txt", "wb" ) //Открываем файл data.txt для записи. fputc( 0x12, f ) //Записываем байт 0x12 в этот файл. fclose( f ) //Закрываем файл. fputsПараметры ( s, stream ) Примеры f = fopen( "/tmp/data.txt", "wb" ) //Открываем файл data.txt для записи. str = "Hello!" fputc( str, f ) //Записываем строку "Hello!" в этот файл. fclose( f ) //Закрываем файл. fwriteПараметры ( data, size, stream ) Примеры f = fopen( "/tmp/data.txt", "wb" ) //Открываем файл data.txt для записи. str = "Hello!" fwrite( str, 2, f ) //Записываем первые два байта из контейнера str в этот файл. fclose( f ) //Закрываем файл. fgetcПараметры ( stream ) fgetsПараметры ( s, n, stream ) Примеры string = new( 256, 1, INT8 ) f = fopen( "/tmp/data.txt", "rb" ) //Открываем файл data.txt для чтения. fgets( string, 256, f ) //Получаем строку текста из этого файла. //Полученная строка помещается в указанный выше контейнер string. //Если в контейнере недостаточно места, то строка обрезается. fclose( f ) //Закрываем файл. freadПараметры ( data, size, stream ) feofПараметры ( stream ) fflushПараметры ( stream ) fseekПараметры ( stream, offset, origin ) ftellПараметры ( stream ) Примеры //Один из способов получения размера файла: f = fopen( "/tmp/data.txt", "rb" ) fseek( f, 0, SEEK_END ) size_of_file = ftell( f ) fclose( f ) remove_fileПараметры ( filename ) rename_fileПараметры ( old_filename, new_filename ) copy_fileПараметры ( source_filename, destination_filename ) strcatДобавляет строку source к строке destination. Обе строки должны заканчиваться символом с кодом 0, если кол-во остальных символов в строке меньше размера контейнера, в котором строка находится. После выполнения этой функции размер контейнера destination может увеличиться, если в нем не хватит места для строки source. Параметры ( destination, source ) strcmpСравнивает две строки str1 и str2. Обе строки должны заканчиваться символом с кодом 0, если кол-во остальных символов в строке меньше размера контейнера, в котором строка находится. Параметры ( str1, str2 ) Возвращаемое значение
strlenВозвращает длину строки. Завершающий символ с кодом 0 не учитывается. Строки должна заканчиваться символом с кодом 0, если кол-во остальных символов в строке меньше размера контейнера, в котором строка находится. Параметры ( str ) Возвращаемое значение Длина строки. strstrИщет первое вхождение подстроки str2 в строке str1. Обе строки должны заканчиваться символом с кодом 0, если кол-во остальных символов в строке меньше размера контейнера, в котором строка находится. Параметры ( str1, str2 ) Возвращаемое значение Функция возвращают смещение подстроки str2 в строке str1, или -1, если подстрока не найдена. sprintfФорматирует и запоминает наборы символов и значений в str. Каждый аргумент (если он есть), преобразуется и выводится согласно соответствующей спецификации формата в format. Параметры ( str, format, ... ) Возвращаемое значение Возвращает количество символов, записанных в str. В случае ошибки возвращается отрицательное значение. systemВыполнить системную команду. Параметры ( command ) Примеры //Удаляем файл в Unix-совместимой ОС: system( "rm /tmp/data.txt" ) argcargvПараметры ( n ) Примеры if argc >= 4
{
a = argv( 3 )
remove( a )
}exitВыйти из Pixilang. Примеры exit( 4 ) //Выйти с кодом 4 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||