Pixilang: различия между версиями

Содержимое удалено Содержимое добавлено
Нет описания правки
Строка 22:
 
Пример:
width 320
height 240
noborder
windowname "MyНазвание Programокна"
buffer 4096
 
==Элементы языка==
Строка 182:
...
//V1..V3 - номера вершин. ORDER - номер треугольника (команда sort_triangles автоматически заполнит это значение)
//X,Y,Z - координаты (256Fixed - 1.0; 512 - 2.0...point)
 
'''sort_triangles (vertexes,triangles)''' - отсортировать треугольники (заполнить значения ORDER в массиве triangles) по координате Z.
Строка 289:
'''effector (color,power,type,x,y,xsize,ysize,xadd)''' - команда для использования стандартных графических эффектов. сolor - цвет эффекта. power - мощность эффекта (от 0 до 256). type - тип эффекта: 0 - шум; 1 - горизонтальное размытие; 2 - вертикальное размытие. x,y,xsize,ysize - прямоугольная область, в которой будет работать выбранный эффект. xadd - интервал между точками.
 
'''pixel_shader (pixel_shader_subprogram)''' - включить программный пиксельный шейдер (версия PS1). pixel_shader_subprogram - подпрограмма шейдера. Входные параметры для этой подпрограммы: PS_T - номер пикси-контейнера с текстурой; PS_TX - текущая координата X на текстуре (256Fixed - 1.0point); PS_TY - текущая координата Y на текстуре (256 -Fixed 1.0point); PS_TP - номер пикселя на текстуре; PS_P - номер пикселя на экране. Выходные параметры: PS_R - окончательный цвет точки.
 
Пример:
pixel_shader( GLASS_PIXEL_SHADER ) //Включение пиксельного шейдера "стекло"
... /* Здесь рисуем какие-нибудь pixi */
...
pixel_shader( -1 ) //Выключение пиксельных шейдеров
GLASS_PIXEL_SHADER:
Строка 314:
'''t_rotate_z (angle,x,y,z)''' - добавить трансформацию поворота вокруг оси X, Y или Z на угол angle (512 = 2*Пи). Центр поворота - x,y,z
 
'''t_translate (x,y,z)''' - добавить трансформацию переноса (сдвига). Коэф-ты переноса x,y,z - целые числа: 256(Fixed = 1.0; 512 = 2.0 и т.дpoint).
 
'''t_scale (x,y,z)''' - добавить трансформацию масштабирования. Коэф-ты масштабирования x,y,z - целые числа: 256(Fixed = 1point).0 (нормальныйНормальный размер); 512- =256; 2.0 (увеличение в два раза) - 512.
 
'''t_get_matrix (m), t_set_matrix (m), t_mul_matrix (m)''' - действия с матрицей трансформации (матрица - 4х4 ячейки, или просто массив из 16ти 32-битных чисел (Fixed point)). t_get_matrix - записать текущую активную матрицу в массив m. t_set_matrix - взять матрицу из массива m и сделать её активной. t_mul_matrix - умножить текущую активную матрицу на матрицу из массива m.
 
'''t_get_x (x,y,z), t_get_y (x,y,z), t_get_z (x,y,z)''' - произвести трансформацию точки с координатами x,y,z (256Fixed = 1.0point) и возвратить измененную координату x, y или z (Fixed point).
 
===Работа со строками===
Строка 468:
//Нормальная амплитуда в 32-битном звуке - от -32767 до 32767.
send_sound( snd, 44100, 1, 1 )
 
Пример создания зацикленного буфера из картинки:
//img - какая-то цветная pixi-картинка
send_sound( img, 44100, 2, 1 ) //Превращаем картинку в стерео-звук
//правый канал - красный цвет; левый канал - зеленый цвет
 
===Работа с файлами===
Строка 488 ⟶ 493 :
'''ccos (angle)''' - такие же как sin и cos, только с более низкой четкостью. Значение для угла angle: 256 = 2*Пи. Возвращаемые значения: -128...0...128
 
'''rand''' - получить случайное число в диапазоне от 0 до 3276832767
 
'''rand_seed (seed)''' - установить указатель случайных чисел